Repeater 顾名思义 就是重复绑定数据的控件,它没有内置布局。只能使用模板创建 Repeater 控件的布局相,比较GridView而言它可能没有后者强大的功能,多样的表现形式,但是就是因为它的简单使的它成为所有数据显示控件中效率最高的控件,如果没有很复杂的功能、表现形式需求,它绝对是首选。
下面出场的是今天我要说的主角,在我还不是很明白它与前面两个控件的区别的时候,也看过很对的介绍它们区别的文章,都说它是界于GridView、repeater之间的一个控件,效率还行,功能一般,看的最多的一句话是“DataList 控件与 Repeater 控件的不同之处在于:DataList 控件将项显式放在 HTML 表中,而 Repeater 控件则不然”。一看确实是这么回事,在单纯的显示数据列表的时候,操作没有GridView、Repeater简单方便,效率也不是最高的。既不简单、也不高效。鸡肋??!!
错!“牛刀”只有在杀牛的时候才知道什么叫利器,你拿牛刀对付小鸡,当然是手忙脚乱,没准还伤了自己。但是对付“牛”问题,那叫舒服~!“牛刀一出,万牛臣服!” 最强点--自定义表现形式的超强灵活性!!DataList 可以实现任何样式的数据绑定,在贴切点说它是“治疗”绑定特殊样式的“通用药”。只要是数据绑定,结合数据源控件,你可以用它设计出千变万化的形式。
举个例子,我以前碰到一个问题,就是要实现如图样子
开始真是一头雾水,实现的功能要求是动态的读取数据库生成上图的样子,一行最多显示2列。首先这个功能可能不是只有它可以实现,GridView也可以,但是实现该效果绝对是 Datalist最合适。


<asp:DataList ID="DataList1" runat="server" style="margin-top: 10px; margin-left: 20px" Width="600px">
<ItemTemplate>
<fieldset>
<legend>
<asp:CheckBox ID="ckbFirstRole" runat="server" Text='<%# Ev
</legend>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Ev
<asp:CheckBoxList ID="chblRole" runat="server" Style="margin-left: 10px" DataSourceID="ObjectDataSource1" DataTextField="region_name" DataValueField="tax_no" RepeatColumns="8">
</asp:CheckBoxList>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetChildRegion" TypeName="HXCRM.BLL.Bregion">
<SelectParameters>
<asp:ControlParameter ControlID="HiddenField1" Name="node" PropertyName="Value" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
</fieldset>
</ItemTemplate>
</asp:DataList>
搞定~!用GridView?..虽然和这个代码差不多,但是一行两列呢?RepeatColumns=“2”搞定!
GridView得想想了。效率上就不说了,GridView直接淘汰。
真正让我认识到DataList 强大的其实是在做一个 调查表自动生成系统中,要实现自定义生成调查表,调查表包括了单选、多选、填空、问答。快成一个考试系统了。
你可以想象用GridView实现吗?..你可以想象用repeater实现吗?….于是我想到了DataList
一般的这种效果都是用javas
在我完成的那一刻,发现DataList 真实“牛刀”啊~。
从灵活性和执行效率上综合考虑,比较GridView Repeater DataList三者、DataList当属第一。