DataGrid,DataList,Repeater是我们最常使用的表格化数据显示控件。在它们之间你是不是曾经不知道该怎么选择呢?怎样才能选择到最适合的控件呢?看了以下的内容你大概就会明白了
这三个控件大家肯定都非常的熟悉了,我们直接看看它们该在什么场合使用,有什么区别吧。
如果你想要快速、简单的开发: 选择DataGrid
如果你想要轻量级的、只读的表格化显示: 选择Repeater
如果你想要小巧的、快速的解决方案: 选择Repeater(最快)选择DataList(比较快)
如果你想要自定义模板的显示: 选择Repeater 选择DataList
如果你想要能选择一行并编辑: 选择DataGrid 选择DataList
如果你想要能够排序和自动分页的显示: 选择DataGrid
3个控件的比较:
特性 Repeater control DataList control DataGrid control 默认显示 None (模板控制) Table Table 自动根据数据源建立列 No No Yes 自定义表格头 Yes Yes Yes 自定义行 Yes Yes Yes 自定义交互的行 Yes Yes Yes 自定义分隔行 Yes Yes No 自定义表格脚 Yes Yes Yes 支持分页 No No Yes 支持排序 No No Yes 支持修改内容 No Yes Yes 支持选择单行 No Yes Yes 支持选择多行 No No No 支持水平和垂直的排序方式 No Yes No
通过以上的介绍我相信大家都知道的该怎么选择这3个数据控件了吧^_^
谈到这里让我再来说说数据绑定的问题。在看过了 JGTM'2003的 《 ASP.NET中的数据绑定:哪个更快? 》后特别指出:
除非要用到多表的关系、排序、过滤等功能,一般的查看推荐使用DataReader
非必要,不要用DataBinder.Eval,应该用((DataRowView)(Container.DataItem))["列名"]/[列索引]的方式来
访问数据,但使用这种方法,必须在ASPX页面顶部
加入
例:
如果要格式化:
要是DataReader绑定的话:
由于本人水平有限,很多不足的地方希望各位大哥多多指教^_^
参考:《ASP.NET Cookbook》
特性 |
Repeater control |
DataList control |
DataGrid control |
---|---|---|---|
默认显示 |
None (模板控制) |
Table |
Table |
自动根据数据源建立列 |
No |
No |
Yes |
自定义表格头 |
Yes |
Yes |
Yes |
自定义行 |
Yes |
Yes |
Yes |
自定义交互的行 |
Yes |
Yes |
Yes |
自定义分隔行 |
Yes |
Yes |
No |
自定义表格脚 |
Yes |
Yes |
Yes |
支持分页 |
No |
No |
Yes |
支持排序 |
No |
No |
Yes |
支持修改内容 |
No |
Yes |
Yes |
支持选择单行 |
No |
Yes |
Yes |
支持选择多行 |
No |
No |
No |
支持水平和垂直的排序方式 |
No |
Yes |
No |
通过以上的介绍我相信大家都知道的该怎么选择这3个数据控件了吧^_^
谈到这里让我再来说说数据绑定的问题。在看过了 JGTM'2003的 《 ASP.NET中的数据绑定:哪个更快? 》后特别指出:
除非要用到多表的关系、排序、过滤等功能,一般的查看推荐使用DataReader
非必要,不要用DataBinder.Eval,应该用((DataRowView)(Container.DataItem))["列名"]/[列索引]的方式来
访问数据,但使用这种方法,必须在ASPX页面顶部
加入
例:
如果要格式化:
要是DataReader绑定的话:
由于本人水平有限,很多不足的地方希望各位大哥多多指教^_^
参考:《ASP.NET Cookbook》
非必要,不要用DataBinder.Eval,应该用((DataRowView)(Container.DataItem))["列名"]/[列索引]的方式来
访问数据,但使用这种方法,必须在ASPX页面顶部
加入
例:
如果要格式化:
要是DataReader绑定的话:
由于本人水平有限,很多不足的地方希望各位大哥多多指教^_^
参考:《ASP.NET Cookbook》