DataGrid,DataList和Repeater用法收集

ASP.Net 提供了三个数据控件,使得原本在 ASP 中繁杂的工作变得简单。这三个控件属于数据 Web 控件,分别是 DataGrid,DataList 和 Repeater。一般都是从 datagrid 开始的(至少我是这样开始的),每种数据控件都有其自身的缺陷,因此在程序设计中并不存在最完美的选择。你必须权衡三种控件的优缺点并决定哪一种更加适合你的程序。

三者共同点:

1。都是用来显示数据

2。都需要来进行绑定

dataWebControlID.DataSource=someDataSource

dataWebControlID.DataBind()

someDataSource 一般是指数据控件的数据源,包括 dataset,SqlDataReader OleDbDataReader 或一组数据

  DataBind() 遍历一个特点的 DataSource 中的记录,并对其中的每条 记录,建立一个对应的 Item 集。数据控件中的每条记录将成为一个实例。例如,DataGrid 中的每个条目是 DataGridItem 类的一个实例,而 Repeater 中的条目则是 RepeaterItem 类的一个实例。

3。每种控件都被允许使用模板显示数据。 不同点:   DataList 和 Repeater 控件必须使用模板来输出数据,DataGrid 允许通过 TemplateColumn 而只使用模板来显示一列 DataList 放弃了 DataGrid 中列表显示数据的概念,而是使用事先定义好的模板(Template)来定制显示:

<asp:DataList runat="server" id="myDataList">     

    <ItemTemplate>     

        <%# DataBinder.Eval(Container.DataItem, "CompanyName") %>   

    </ItemTemplate>   

</asp:DataList>


  ItemTemplate 还支持其它其它6种模板:  

 

·AlternatingItemTemplate    

·EditItemTemplate    

·FooterTemplate   

·HeaderTemplate    

·ItemTemplate    

·SelectedItemTemplate    

·SeparatorTemplate 


  通过 EditItemIndex 模板和 EditCommand,UpdateCommand 以及 CancelCommand 事件,DataList 将支持记录编辑的功能。DataList 的性能要比 DataGrid 好一些,特别是当 DataList 被包含在Form 当中时。 

Repeater 控件  

Repeater 控件是三种数据控件中在 HTML 输出方面最为灵活的控件,使用模板来指定输出样式。

Repeater 支持如下五种模板:   

·AlternatingItemTemplate    

·FooterTemplate    

·HeaderTemplate    

·ItemTemplate    

·SeparatorTemplate


  Repeater 类不是继承自 WebControl 类的,这一点与 DataGrid 和 DataList 不同。

  Repeater 唯一优于 DataGrid 和 DataList 的特点是它的性能,尤其明显优于 DataGrid 。

  DataGrid 提供了最多的功能,如允许访问者对记录编辑、排序或分页。同时它也是最容易使用的,甚至于简单到只需要将之添加到页面中而不必额外编写代码。不过这些易用性是以性能的损失为代价的。DataGrid 在三种控件中是效率最低的,特别 是在使用 Web Form 的情况下。

  通过使用模板,DataList 提供了比 DataGrid 更加优秀的界面效果。不过这需要以牺牲一定的开发时间为代价。为了添加排序、分页和编辑功能,程序员不得不花费比使用 DataGrid 更多的精力来进行编码,虽然它的性能要优于 DataGrid。

  最后,Repeater 允许对数据记录作最大限度的 HTML 定制。通常,使用 Repeater 来显示数据记录比使用 DataGrid 和 DataList 要耗费更长的开发时间。另外,它不支持内建的编辑、排序和分页功能。所幸的是,Repeater 在性能上要优于其它两种控件,特别是明显优于 DataGrid。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值