3.11 AdRotator控件
AdRotator控件提供一种在Web页面上显示广告的方法,它可以显示你提供的.gif文件或其他图形图像。当用户单击广告时,系统会将它们重定向到指定的目标URL。同时,该控件会从你使用数据源(通常是XML文件或数据库表)提供的广告列表中自动读取广告信息,如图形文件名和目标URL。
在广告显示中,AdRotator控件会随机选择广告,每次刷新页面时都将更改显示的广告。广告可以加权以控制广告条的优先级别,这可以使某些广告的显示频率比其他广告高。当然,也能编写在广告间循环的自定义逻辑来控制广告的显示效果。下面的示例演示了AdRotator控件从一个外部的XML文件中随机选择图片广告进行显示。
在创建AdRotator控件之前,必须先准备好广告的数据源,即定义好一个用于存储广告信息的XML文档文件。现在,首先在App_Data文件夹里面定义了一个名为Ad.xml的文件,如下所示:
<?xml version="1.0"encoding="utf-8"?>
<Advertisements xmlns="
http://schemas.microsoft.com/AspNet/AdRotator-Schedule-File">
<Ad>
<ImageUrl>~/Images/1.gif</ImageUrl>
<NavigateUrl>http://www.baidu.com</NavigateUrl>
<AlternateText>去Baidu搜索</AlternateText>
<Impressions>10</Impressions>
<Keyword>Baidu</Keyword>
</Ad>
<Ad>
<ImageUrl>~/Images/2.gif</ImageUrl>
<NavigateUrl>http://www.google.cn</NavigateUrl>
<AlternateText>去Google搜索</AlternateText>
<Impressions>20</Impressions>
<Keyword>Google</Keyword>
</Ad>
</Advertisements>
如上面的Ad.xml文件所示,每个<Ad>元素都有规定的格式与节点元素,它们用于配置链接、图片和频率等,如表3-9所示。因此,不能够定义它不存在的或者不能够识别的元素。
定义好Ad.xml文件之后,只需要将该XML文件赋给AdRotator控件的AdvertisementFile属性,如下所示:
<asp:AdRotator ID="AdRotator1"runat="server"
BorderWidth="0px"AdvertisementFile="~/App_Data/Ad.xml"
Target="_blank"/>
运行程序,就可以看见如图3-9所示的结果。当刷新此页面时,会看到每次都有一个随机的新广告图片出现。
图 3-9 AdRotator控件示例
当然,除了可以为广告信息创建一个XML文件以外,还可以将广告信息存储到一个数据库表中。该表需要一种AdRotator控件能够读取的特定架构,如表3-9所示。可以将广告信息存储在任何类型的数据库中,只要这种数据库有对应的数据源控件即可。
最后,还可以响应AdRotator控件的OnAd Created事件。该事件发生在该网页被创建且一个图片从文件中被随机选中时。这个事件提供图片的信息,便于你定制网页的其他部分。