5.11 广告控件(AdRotator)

  在Web应用开发中,广告总是必不可少的。而ASP.NET为开发人员提供了广告控件为页面在加载时提供一个或一组广告。广告控件可以从固定的数据源中读取(如XML或数据源控件),并从中自动读取出广告信息。当页面每刷新一次时,广告显示的内容也同样会被刷新。

  广告控件必须放置在Form或Panel控件,以及模板内。广告控件需要包含图像的地址的XML文件。并且该文件用来指定每个广告的导航连接。广告控件最常用的属性就是AdvertisementFile,使用它来配置相应的XML文件,所以必须首先按照标准格式创建一个XML文件,如图5-29所示。
创建一个XML文件
图5-29 创建一个XML文件

  创建了XML文件之后,开发人员并不能按照自己的意愿进行XML文档的编写,如果要正确的被广告控件解析形成广告,就需要按照广告控件要求的标准的XML格式来编写代码,示例代码如下所示。
+展开
-XML
<?xml version="1.0" encoding="utf-8" ?>
<Advertisements>
  [<Ad>
  <ImageUrl></ImageUrl>
  <NavigateUrl></NavigateUrl>
  [<OptionalImageUrl></OptionalImageUrl>]*
  [<OptionalNavigateUrl></OptionalNavigateUrl>]*
  <AlternateText></AlternateText>
  <Keyword></Keyword>
  <Impression></Impression>
  </Ad>]*
</Advertisements>

  上述代码实现了一个标准的广告控件的XML数据源格式,其中各标签意义如下所示:
?1)ImageUrl:指定一个图片文件的相对路径或绝对路径,当没有ImageKey元素与OptionalImageUrl匹配时则显示该图片。
?2)NavigateUrl:当用户单击广告时单没有NaivigateUrlKey元素与OptionalNavigateUrl元素匹配时,会将用户发送到该页面。
?3)OptionalImageUrl:指定一个图片文件的相对路径或绝对路径,对于ImageKey元素与OptionalImageUrl匹配时则显示该图片。
?4)OptionalNavigateUrl:当用户单击广告时单有NaivigateUrlKey元素与OptionalNavigateUrl元素匹配时,会将用户发送到该页面。
?5)AlternateText:该元素用来替代IMG中的ALT元素。
?6)KeyWord:KeyWord用来指定广告的类别。
?7)Impression:该元素是一个数值,指示轮换时间表中该广告相对于文件中的其他广告的权重。

  当创建了一个XML数据源之后,就需要对广告控件的AdvertisementFile进行更改,如图5-30所示。
指定相应的数据源
图5-30 指定相应的数据源

  配置好数据源之后,就需要在广告控件的数据源XML文件中加入自己的代码了,XML广告文件示例代码如下所示。
+展开
-XML
<?xml version="1.0" encoding="utf-8" ?>
<Advertisements>
  <Ad>
  <ImageUrl>http://www.shangducms.com/images/cms.jpg</ImageUrl>
  <NavigateUrl>http://www.shangducms.com</NavigateUrl>
  <AlternateText>我的网站</AlternateText>
  <Keyword>software</Keyword>
  <Impression>100</Impression>
  </Ad>
  <Ad>
    <ImageUrl>http://www.shangducms.com/images/hello.jpg</ImageUrl>
    <NavigateUrl>http://www.shangducms.com</NavigateUrl>
    <AlternateText>我的网站</AlternateText>
    <Keyword>software</Keyword>
    <Impression>100</Impression>
  </Ad>
</Advertisements>

  运行程序,广告对应的图像在页面每次加载的时候被呈现,如图5-31所示。页面每次刷新时,广告控件呈现的广告内容都会被刷新,如图5-32所示。
一个广告被呈现
图5-31 一个广告被呈现
刷新后更换广告内容
图5-32 刷新后更换广告内容

注意:广告控件本身并不提供点击统计,所以无法计算广告是否被用户点击或者统计用户最关心的广告。

加支付宝好友偷能量挖...


评论(0)网络
阅读(156)喜欢(0)Asp.Net/C#/WCF