在显示数据时有另一个主要的控件: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>