在asp.net的实际开发中,我们经常会绑定一些数据到控件上,这些控件就是所谓的数据源绑定控件,现在常用的数据源绑定控件有下面三个:GrilView,DataList,Repeater!下面就来看看他们之间的区别和用法
用法和显示:
GrilView:是通过表格的形式显示数据的,在客户端自动生成了table标签,多用于显示多行多列的数据,具体的用法在前面已经讲过了,比如
DataList:多用来显示一行多列,或者是多行多列的数据,但是它不向GrilView那样这么明显用表格显示,一般用于图片的布局显示,比如产品列表,在客户端也会自动生成table标签:
Repeater:如果我们不想控件在客户端转成其他html标签,比如我们在我们在后台用ul li dl dt等布局,那么在客户端它也只显示这些标签,它不会生成多余的代码,完全靠视图来布局,所用多用于精确的一列多行显示,效率会高一下,比如新闻列别
它们之间的效率比较,repeater可能会比DataList快一些,DataList比GrilView要快,但是用的条件不同,可灵活选择
显示的结构和模板:
GrilView的模板很多,显示的代码如下
内容都放在了<Columns></Colums>里面,普通的字段都用
<asp:BoundFied></asp:BoundFied>里,需要使用模板的就放在
具体的用法在这里不在说了,但是在模板里可以设置内容模板,头模板和结尾模板,交替模板等,绑定的时候无论是用视图绑定还是后台绑定,最好都先用视图绑定好,然后再手动设置
DataList:完全是通过模板来控制布局,模板很多,有内容模板,交替模板等,显示格式如下:
这个绑定时候也最好用视图绑定后之后再设置,方便
Repeater:也是用模板来控制布局的,不过模板很少,但是够用,呵呵,看看下面的例子
绑定的时候需要手动设置,这点不是太好,有点麻烦,不过有利就有有弊嘛
单项组成部分
有的时候我们需要循环遍历控件中各个项,那么我们首先要知道这些控件的单项是什么,组成成员有哪些,才可以循环处理
GrilView由行GrilViewRow和列DataControlField组成,循环的行的时候有两种方式
foreach(GridViewRow item in this.GridView1.Columns)
for (int i = 0; i < this.GridView1.Rows.Count; i++)
DataList主要有DataListItem构成,集合是items
Repeater主要是由RepeaterItem构成,集合也是items
foreach(RepeaterItem
然后item的下面是DataItem项,一般都在DataBound事件
控件的RowDataBound
在这里顺便说一下控件的DataBound事件,这个主要是用来触发绑定事件的,就是在控件绑定数据的同时触发的,一般多用于前台的展示,比如用于前台的数据展示,可以结合html标签一起使用,使展示的效果好些,或者是行的点击,移上去等需要客户端(js)处理的事件的都可以使用DataBound完成,意思就是说只要是控件中的项,无论是绑定的数据,还是控件,只要是想用js实现的事件都可以触发DataBind事件,总之,第一是为了更好的显示,第二就是通过js实现控件中的项!