在显示数据时有另一个主要的控件:Repeater控件。问得最频繁的问题是,在什么时候使用哪个控件。表9-6对这些控件的差别作出了总结。

表9-6  比较Repeater、DataList和GridView控件

特  性

Repeater

DataList

GridView

支持表(Table)布局

支持流(Flow)布局

支持列(Column)布局

Style属性

模板

列 / 可选

Select / Edit / Delete支持

排序

分页

Repeater控件提供了DataList的子功能,通常仅在不需要列布局时使用。

Repeater控件“不好看”——这个控件没有预定好的外观。可以通过添加模板来决定它如何显示。表9-7列出了可用的模板。

表9-7  Repeater控件模板

模板名

说  明

AlternatingItemTemplate

作为项的模板,但是交替项仅呈现在每个间隔行

FooterTemplate

在所有项和其他模板呈现之后呈现的元素

HeaderTemplate

在其他模板呈现之前呈现的元素

ItemTemplate

数据源中的每一行的呈现元素

SeparatorTemplate

在数据源的每行之间呈现的元素

首先,向WebNorthWindDataControls网站添加一个页面,命名为RepeaterDemo.aspx。将Repeater控件从工具箱的“Data”选项卡中拖动到页面上。打开智能标签,它会要求选择(或者创建)一个新的数据源,这个过程与创建DataLists是一致的(将这个数据源命名为RepeaterCustomerDataSource)。

Repeater没有默认外观,它完全使用模板来控制。这些模板实质包括Template元素中列出的HTML代码片段和 .NET服务器控件:

<asp:Repeater id="Repeater1" runat="server" DataSource="<%#

RepeaterCustomerDataSource %>">

   <ItemTemplate>

      <asp:Label id=Label1 runat="server"

         Customer='<%# DataBinder.Eval(Container, "DataItem.Name")%>'>

      </asp:Label>

   </ItemTemplate>

   <SeparatorTemplate>, </SeparatorTemplate>

</asp:Repeater>