Repeater1Page 类覆盖了 Page 类的 OnLoad 方法。此表示在对该页
的首次请求中调用 DataBind。这将导致对这些页上的数据绑定表达式求
值并使 repeater 控件列举数据源以及创建其项目。仅在首次请求时调用
DataBind 方法。这之所以能正常工作是因为 repeater能够在从前一次保
存状态的回传过程中重新创建其项目,而无需数据源实例。
此页将类型ICollection 的公用属性显露出来。这将在设置repeater
的 DataSource 属性值的数据绑定表达式中使用。属性的获取实现使用包
含一组SiteInfo对象序列的ArrayList。此属性是公用的,因为只有页类
的公用和保护成员可在数据绑定表达式中使用。
每个SiteInfo 对象有两个属性:SiteName 和 SiteURL。当对模板中
的HyperLink 控件进行数据绑定时将访问这些属性。在此控件的绑定表达
式中,Container.DataItem 表示要将特定项绑定到其上的单个 SiteInfo
对象。DataBinder.Eval(Container.DataItem, "SiteName"

访问当前
SiteInfo 对象的 SiteName 属性。
Repeater1 示例向您介绍了几个基本概念:
●定义模板
●模板中的数据绑定语法和数据绑定表达式
●将 ArrayList 的 ICollection 表示用作数据源
●在最初处理页的过程中调用 DataBind 方法
DataList 控件
DataList控件是一个模板化控件,它提供使用样式属性可视化地格式
化其表示的能力。它也可以产生多列布局。
摘自 DataList1.aspx:
〈%@ Page language="C#" src="DataList1.cs" inherits="Samples.
DataList1Page"%〉
...
〈asp

ataList runat=server id="peopleDataList"
RepeatColumns="2" RepeatDirection="Vertical" RepeatMode="Table"
Width="100%"〉
〈property name="AlternatingItemStyle"〉
〈asp:TableItemStyle BackColor="#EEEEEE"/〉
〈/property〉
〈template name="ItemTemplate"〉
〈asp:Panel runat=server font-size="12pt" font-bold="true"〉
〈%# ((Person)Container.DataItem).Name %〉
〈/asp:Panel〉
〈asp:Label runat=server Width="20px"
BorderStyle="Solid" BorderWidth="1px" BorderColor="Black"
BackColor='〈%# ((Person)Container.DataItem).FavoriteColor
%〉'〉
〈/asp:Label〉
〈asp:Label runat=server Font-Size="10pt"
Text='〈%# GetColorName(((Person)Container.DataItem).
FavoriteColor) %〉'〉
〈/asp:Label〉
〈/template〉
〈/asp

ataList〉
此 .aspx 文件显示了用来生成此示例的 DataList 的声明。