使用AdRotator
Using AdRotator
现在需要的就是一个包含AdRotator控件的页面,该AdRotator控件将使用这个广告文件,如下面的示例AdRotatorDemo所示。以该名称创建一个新的网站后,拖放一
个AdRotator控件到页面上,并添加几个Label控件来显示动物。内容文件看起来类似于示例5-14。
示例5-14:AdRotatoDemo的Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"
Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>AdRotator</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>AdRotator Control</h1>
<asp:AdRotator ID="ad" runat="server"
Target="_blank"
AdvertisementFile="ads.xml"
OnAdCreated="ad_AdCreated" />
<br />
Animal:
<asp:Label id="lblAnimal" runat="server"/>
</div>
</form>
</body>
</html>
在示例5-15的代码隐藏文件中高亮显示事件处理程序ad_AdCreated。
示例5-15:AdRotatorDemo网站的Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ad_AdCreated(object sender, AdCreatedEventArgs e)
{
if ((string)e.AdProperties["Animal"] != "")
lblAnimal.Text = (string)e.AdProperties["Animal"];
else
lblAnimal.Text = "n.a.";
}
}
确保该广告文件的名称为ads.xml,并位于网站根目录下,根目录下还包括几个广告文件用到的图片文件:ProgAspNet.gif,ProgCSharp.gif,ProgVB.gif 和WinApps.gif。
运行AdRotatorDemo的结果如图5-13所示。要看一下图片循环,在浏览器中刷新视图。

图5-13:AdRotatorDemo
该控件会引发AdCreated事件,该事件在每次回发到服务器且控件被创建之后呈现页面之前引发。控件声明中的OnAdCreated属性指定了该事件在引发时的事件处理程序。该事件处理程序传递一个AdCreatedEventArgs类型的参数,这个参数的属性在表5-13中列出。
表5-13 AdCreateEventArgs类的属性
|
属 性 |
说 明 |
|
AdProperties |
获取一个字典对象,该对象包含了广告文件中的所有对象 |
|
AlternateText |
广告图片无效时显示的替换文本. 如果浏览器支持工具提示,该文本将显示为工具提示 |
|
ImageUrl |
要显示的图片的URL |
|
NavigateUrl |
控件被单击时要显示的页面的URL |
每次改变广告后(也就是说,每次页面重新加载时),这个事件处理程序ad_AdCreated被引发并更新页面上的lblAnimal控件。 ad_AdCreated首先检测Animal属性中是否有值,如果没有,则显示“n.a”(即“not,available”)。
AdProperties属性返回一个Dictionary。当获取AdProperties属性时,它会隐式地调用Dictionary对象的Item方法,它返回一个与字典项相应的值,该字典项的关键字是Animal,该值然后被转换为字符串,在C#中,它使用下面的语法完成:
(string)e.AdProperties["Animal"]







