一个懒人专用文章归档神器,如果你不能成为压路机的一部分,那么你就只能成为道路的一部分 Bala~bala~

GridView,DataList,Repeater 控件区别

C#/ASP.NET 懒人 1438℃ 0评论

GridView 控件:
GridView 控件以表的形式显示数据,并提供对列进行排序、分页、翻阅数据以及编辑或删除单个记录的功能。

Repeater 控件:
Repeater 控件使用数据源返回的一组记录呈现只读列表。与 FormView 控件类似,Repeater 控件不指定内置布局。可以使用模板创建 Repeater 控件的布局。

DataList 控件:
DataList 控件以表的形式呈现数据,通过该控件,您可以使用不同的布局来显示数据记录,例如,将数据记录排成列或行的形式。可以对 DataList 控件进行配置,使用户能够编辑或删除表中的记录。(DataList 控件不使用数据源控件的数据修改功能;您必须自己提供此代码。)DataList 控件与 Repeater 控件的不同之处在于:DataList 控件将项显式放在 HTML 表中,而 Repeater 控件则不然。


GridView:

相对来说它的功能最强大,提供分页,编辑,删除,选择等等很多功能,使用最方便,而且支持分页功能。但是因为模板已经定制好,灵活控制性相对较低。
缺点:占用系统资源大,他的分页是把整个表的数据取出来,到gridview上分页的,因此如果数据量比较大的时候,速度非常非常慢。效率极低。
综合以上考虑:gridview适合数据量小,效率要求不高的情况使用,比如后台。我们在项目中主要是通过对每种菜进行勾选操作,这就涉及到前台的编辑和后台的数据处理,而且考虑到数据量不是太多,所以就选择了GridView控件进行开发。

Repeater:

Repeater控件自带的功能是最弱的,所有的功能都需自己写代码实现比较麻烦,但是它效率高,容易灵活控制生成HTML代码。 一般用于只读的数据,对数据呈现的列表不具备编辑,排序,分页等功能。如果需要实现这些功能的话需要自己去实现。

所以涉及到需要操作数据时不使用repeater控件,而那些简单的显示界面时,使用repeater控件会提高效率。本次就在一些用来显示数据界面用到了repeater控件。

DataList:

介于Gridview和Repeater控件之间,DataList 与GridView不同,必须通过自定义的template 来显示数据项。DataList 与 GridView相比不支持排序,分页功能,在这点上又与Repeater控件相似。它提供模板内置布局,而Repeater控件不支持。

DataList 一般适用于显示“单列多行”关系的数据,例如用于显示产品列表,每一个ListItem显示一件产品的信息,你可以为ListItem 定义自己需要的格式。


griview优点:功能最强大,提供分页,编辑,删除,选择等等很多功能,使用最方便,直接拖拽到页面上,建立新的数据源,点几下鼠标就可以维护一个表的浏览、删除和修改了,而且是分页的哦。(增加我还没搞明白怎么能点几下鼠标就实现,如果您知道请告诉我。)。而且因为模板已经定制好,想自己灵活控制,不太容易。
缺点:占用系统资源大,他的分页是把整个表的数据取出来,到gridview上分页的,因此如果数据量比较大的时候,速度非常非常慢。效率极低。

datalist比较好控制样式。。没有自带的分页。。编辑等。。都得自己手写。。
还有个repeater

优点:功能简单,效率高,容易灵活控制生成的HTML代码,分页需要自己实现,整体来说,如果用习惯repeater就会喜欢上,适合前台使用。

datalist处于他们俩之间

至于什么时候用取决与你自己的程序。。
第二个人:

简单的说:GridView,DataList都是从WebControl派生出来的,拥有WebControl样式属性,自身会被解析为table,其中的每一行会被解析为tr-td  、

Repeater是从Control派生出来的,它只是重复模板中的内容,这也是为什么repeater没有提供ItemStyle,SelectItemTemplate这些模板和样式控制的原因

从灵活性上讲肯定是Repeater更灵活,他只是循环内容,不用产生.net指定的一系列垃圾代码,但是同时他也失去了.net提供的部分功能。但是编译生成的html更为简单,因此效率也相对要高

从使用上讲的话,就要看你比较善于使用哪个了,Repeater比较容易设置样式,GridView比较容易做增删改等操作。

转载请注明:懒人档案室 » GridView,DataList,Repeater 控件区别

喜欢 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址