GridView DataList Repeater
GridView 在于它的数据源,分页控件,事件都比较全,功能强大,差在美观和分页上,它的分页是把整个表的数据取出来,到gridview上分页的,因此如果数据量比较大的时候,速度非常非常慢。效率极低。感觉out了
Repeater:功能简单,效率高,容易灵活控制生成的HTML代码,分页需要自己实现,整体来说,如果用习惯repeater就会喜欢上,适合前台使用。
Datalist:处于他们俩之间,比较好控制样式,没有自带的分页,编辑等。全部需要自己手写
GridView对类库的封装比较齐全,样式、分页等也有封装!绑定数据时基本就可以用,比较方便,但是对服务器的负担比较大,一般开发中不宜用!
Repeater和dataList差不多,Reapter是只读的,而dataList是可读可写的,Repeater是轻量级的,给服务器带来的负担不大,所以在通常的开发中,Repeater相对来说是常用的,也可以设置你喜欢的样式!GridView样式设置不够灵活
griview优点:功能最强大,提供分页,编辑,删除,选择等等很多功能,使用最方便,直接拖拽到页面上,建立新的数据源,点几下鼠标就可以维护一个表的浏览、删除和修改了,而且是分页的哦。(增加我还没搞明白怎么能点几下鼠标就实现,如果您知道请告诉我。)。而且因为模板已经定制好,想自己灵活控制,不太容易。
缺点:占用系统资源大,他的分页是把整个表的数据取出来,到gridview上分页的,因此如果数据量比较大的时候,速度非常非常慢。效率极低。
综合以上考虑:gridview适合数据量小,效率要求不高的情况使用,比如后台。
repeater优点:功能简单,效率高,容易灵活控制生成的HTML代码,分页需要自己实现,整体来说,如果用习惯repeater就会喜欢上,适合前台使用。
缺点:功能简单。需要自己做更多的事情才能完成某个功能。
datalist:介于上面两者之间,个人感觉几乎没什么用处
GridView用来显示比较规则的数据表,输出到前台就是<table>。
DataList用来混合显示一些参杂的数据,比如产品展示的图片+说明等,输出到前台的形式由你自己定。
Repeter显示的形式最为灵活,只要有数据集,你想显示成什么样就显示成什么样。
配置难度Repeter>DataList>GridView
具体选哪个得看你想显示成什么样,以及数据的规整程度。总之,我的原则就是,能用GridView决不用DataList,能用DataList就不用Repeter...
ataList
优点:
拥有强大的模版特性,灵活性高
支持数据的编辑状态
性能优于DataGrid
开发周期略比Datagrid高
没有Datagrid编辑器
不容易实现分页和排序功能
Repeater
控件完全以HTML方式呈现,更加个性化
不支持编辑、分页、排序功能 (所有实现都需要自己做)
开发周期最长
不提供默认的风格,须手工编写
性能最好,但特性最少
DataGird
优点:
灵活性强,内置事件丰富
提供分页、编辑、排序等特性
功能强大的DataGrid编辑器以及模版列
快速开发、容易部署
对于表格的操作非常方便
内置多种布局风格
缺点:性能不高(因为每次操作必须postback回服务器)
个性化输出数据有限(只能输出html表格)
、
GridView你就当它是财会部门用的报表吧。
DataList你就当它是网上商店里那些把图片和单价、库存一块一块的显示出来的东西。一行二列,一行三列。。。管它呢。
Repeater你就当它是新闻网站里列出来的那些新闻标题。
ForView你就当它是一些网站注册后收集你个人信息或定制个性化的那个页面。
DetailsView你就当它是注册时输入用户名,密码的那个界面。
其实管那么多干吗?这些微软的家伙们当初整出个FormView,DataList什么的,其实就是花心思总结了一些输入界面,然后按他们的意愿分类,然后‘强加’给我们。
动机很好,可这些亲爱的家伙们多少给初学者们带来了些疑惑。
GridView 控件用于显示表中的数据。通过使用 GridView 控件,您可以显示、编辑、删除、排序和翻阅多种不同的数据源(包括数据库、XML
文件和公开数据的业务对象)中的表格数据。
显示表格数据是软件开发中的一个周期性任务。ASP.NET 提供了许多工具来在网格中显示表格数据,例如 GridView 控件。通过使用 GridView
控件,您可以显示、编辑和删除多种不同的数据源(例如数据库、XML 文件和公开数据的业务对象)中的数据。
可以使用 GridView 来完成以下操作:
*
通过数据源控件自动绑定和显示数据。
*
通过数据源控件对数据进行选择、排序、分页、编辑和删除。
另外,还可以通过以下方式自定义 GridView 控件的外观和行为:
*
指定自定义列和样式。
*
利用模板创建自定义用户界面 (UI) 元素。
*
通过处理事件将自己的代码添加到 GridView 控件的功能中。
1.1 使用 GridView 控件进行数据绑定
GridView 控件提供了两个用于绑定到数据的选项:
*
使用 DataSourceID 属性进行数据绑定,此选项让您能够将 GridView 控件绑定到数据源控件。建议使用此方法,因为它允许 GridView
控件利用数据源控件的功能并提供了内置的排序、分页和更新功能。
*
使用 DataSource 属性进行数据绑定,此选项使您能够绑定到包括 ADO.NET
数据集和数据读取器在内的各种对象。此方法需要为所有附加功能(如排序、分页和更新)编写代码。
当使用 DataSourceID 属性绑定到数据源时,GridView
控件支持双向数据绑定。除可以使该控件显示返回的数据之外,还可以使它自动支持对绑定数据的更新和删除操作。
1.2 在 GridView 控件中设置数据显示格式
可以指定 GridView
控件的行的布局、颜色、字体和对齐方式。可以指定行中包含的文本和数据的显示。另外,可以指定将数据行显示为项目、交替项、选择的项还是编辑模式项。GridView
控件还允许指定列的格式。
1.3 使用 GridView 控件编辑和删除数据
默认情况下,GridView 控件在只读模式下显示数据。但是,该控件还支持一种编辑模式,在该模式下控件显示一个包含可编辑控件(如 TextBox 或
CheckBox 控件)的行。您还可以对 GridView 控件进行配置以显示一个 Delete 按钮,用户可单击该按钮来删除数据源中相应的记录。
GridView 控件可对其关联数据源自动执行编辑和删除操作,使您无需编写代码即可启用编辑行为。或者,也可以以编程方式控制编辑和删除数据的过程(如在
GridView 控件绑定到只读数据源控件的情况下)。
您可以使用模板对当某个行处于编辑模式时使用的输入控件进行自定义。
1.4 GridView 排序功能
GridView 控件支持在不需要任何编程的情况下通过单个列排序。通过使用排序事件以及提供排序表达式,您可以进一步自定义 GridView 控件的排序功能。
1.5 GridView 分页功能
GridView 控件提供一种简单的分页功能。可以通过使用 GridView 控件的 PagerTemplate 属性来自定义 GridView
控件的分页功能。
适用场景
GridView 控件一般适用于以表的形式显示规则的二维关系数据。例如用于显示站点下所有用户的列表。
2. DataList 控件
DataList Web
服务器控件以可自定义的格式显示数据库行的信息。显示数据的格式在创建的模板中定义。可以为项、交替项、选定项和编辑项创建模板。标头、脚注和分隔符模板也用于自定义
DataList 的整体外观。通过在模板中包括 Web 服务器控件,可将列表项连接到代码,这些代码使用户得以在显示、选择和编辑模式之间进行切换。
DataList 与GridView不同,必须通过自定义的template 来显示数据项。DataList 与 GridView相比不支持排序,分页功能。
适用场景
DataList 一般适用于显示“单列多行”关系的数据,例如用于显示产品列表,每一个ListItem显示一件产品的信息,你可以为ListItem
定义自己需要的格式。
3. Repeater 控件
Repeater Web 服务器控件是一个容器控件,它使您可以从页的任何可用数据中创建出自定义列表。Repeater
控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repeater 控件提供布局。当该页运行时,Repeater
控件依次通过数据源中的记录,并为每个记录呈现一个项。
Repeater 控件与上述2 个控件相比显得最为单薄,Repeater 一般用于只读的数据,对数据呈现的列表不具备编辑,排序,分页等功能。
适用场景
功能非常单薄,它使用数据源返回的一组记录呈现只读列表。
4.DetailsView 控件
DetailsView 控件一次呈现一条表格形式的记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。DetailsView
控件通常用在主/详细信息方案中,在这种方案中,主控件(如 GridView 控件)中的所选记录决定了 DetailsView 控件显示的记录。
5.FormView 控件
FormView 控件与 DetailsView
控件类似,它一次呈现数据源中的一条记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。不过,FormView 控件与 DetailsView
控件之间的差别在于:DetailsView 控件使用基于表格的布局,在这种布局中,数据记录的每个字段都显示为控件中的一行。而 FormView
控件则不指定用于显示记录的预定义布局。实际上,您将创建包含控件的模板,以显示记录中的各个字段。该模板包含用于设置窗体布局的格式、控件和绑定表达式。
gridview是很智能的, 直接就提供了很多的表现方式, 是三者之中最复杂也是最占资源的一块, 常用于列表数据处理的时候, 但是最好是不要太大量的数据;
repeater: 顾名思意, 其实就是实现重复现显示的功能, 里面的内容自定义程度高, 有点类似于在ASP中写循环语句来实现自动生成数据列表那样, 是线性的处理, 很快的. 直接输出; 数据量很大的时候, 可以考虑用这个.
datalist: 上面有人已经说了, 介于两者之间;
.Net 2中5个数据源控件,GridView,DataList,Repeator ,DetailsView,FormView
其中前3个用于呈现多列数据,后面2个用于呈现单列数据,即常用的数据明细.
GridView和DetailsView控件的布局固定,自定义数据显示的布局功能有限,一般适合布局简单的数据呈现
DataList,Repeator和FormView数据控件都有很强的自定义布局能力,如果数据呈现需要较为复杂的布局方案,这3个控件是
首选
GridView ,DetailsView和FormView都是2.0版本新增控件,内置了分页,排序等等功能,其改进程度是1.1所提供控件无法比的.
DataList和Repeator是1.1版就提供的控件,内置功能较弱,需要自己实现分页,排序,数据事件等功能.
有趣的是,在现在的Aspnet平台上,如果从功能上来说呈现单列数据时DetailsView和FormView相对应,DetailsView布局固定
FormView自定义布局,呈现多列数据时只有GridView来负责布局固定的数据,从功能上来说,没有对应的控件与GridView相配.
DataList提供的数据功能与GridView相比,实在是太弱了.与GridView几乎不需要编程就能担负数据呈现的重任相比,DataList
要求程序员必须自己写代码来实现想要的功能.推测是为了与1.1兼容,所以没有升级DataList.为了赶进度,所以没有像升级
DataGrid为GridView一样升级DataList为ListView....希望以后的.Net Framework 3能够改善
datalist的 this.DataList1.DataKeyField = "id";相当于Gridview的 this.GridView1.DataKeyNames = new string[] { "id" };
int id = Convert.ToInt32(this.GridView1.DataKeys[e.RowIndex].Value);
datalist控件的
OnDeleteCommand
OnEditCommand
OnUpdateCommand
OnCancelCommand
只要有相应的commandname为delete,update,edit,cancel,就会触发
长时间不看,记忆模糊了,所以从网上整理了下备忘。
列表类
GridView 控件
GridView 控件以表的形式显示数据,并提供对列进行排序、分页、翻阅数据以及编辑或删除单个记录的功能。
特征:一行一条记录,就像新闻列表一样;带分页功能。
DataGrid 控件(建议用 GridView 控件代替)
没有出现 GridView 之前,就用 DataGrid。除了添加利用数据源控件功能的新功能,GridView 控件还实现了某些改进,例如,定义多个主键字段的功能、使用绑定字段和模板的改进用户界面自定义以及用于处理或取消事件的新模型。
DataList 控件
DataList 控件以表的形式呈 现数据,通过该控件,您可以使用不同的布局来显示数据记录,例如,将数据记录排成列或行的形式。您可以对 DataList 控件进行配置,使用户能够编辑或删除表中的记录。(DataList 控件不使用数据源控件的数据修改功能;您必须自己提供此代码。)DataList 控件与 Repeater 控件的不同之处在于:DataList 控件将项显式放在 HTML 表中,而 Repeater 控件则不然。
特征:一行可以有多条记录,就像图片列表一样;分页功能需要手写。
Repeater 控件
Repeater 控件使用数据源返回的一组记录呈现只读列表。与 FormView 控件类似,Repeater 控件不指定内置布局。您可以使用模板创建 Repeater 控件的布局。
特征:自由定制;分页功能需要手写。
ListView 控件
这 个控件既可实现像 GridView 一样的效果,也可实现像 DataList 一样的效果(怪不得名字叫 ListView),这东西应用起来也要复杂些。要点是:LayoutTemplate 下面必须有一个服务器端控件,即 runat="server",其 ID 必须为 itemPlaceholder(除非更改 ListView 的 ItemPlaceholderID),注意大小写,ItemTemplate 模板中的内容输出时就是插入到 itemPlaceholder 的。
但 ListView 分页却不是那么复杂,在 LayoutTemplate 模板中拖入一个 DataPager 控件,指定好 DataPager 的 Fields 就可以了。但 DataPager 并不会向 DataSource 发送 startRowIndex 和 maximumRows 这两个参数,也就是说这种分页是取出所有的记录,只是显示部分,并不是一种高效的分页。
特征:自由定制,功能强大;应用复杂;分页功能需要手写。
详细类
DetailsView 控件
DetailsView 控件一次呈现一条表格形式的记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。DetailsView 控件通常用在主/详细信息方案中,在这种方案中,主控件(如 GridView 控件)中的所选记录决定了 DetailsView 控件显示的记录。
特征:一条记录,一行一个字段;带分页功能。
FormView 控件
FormView 控件与 DetailsView 控件类似,它一次呈现数据源中的一条记录, 并提供翻阅多条记录以及插入、更新和删除记录的功能。不过,FormView 控件与 DetailsView 控件之间的差别在于:DetailsView 控件使用基于表格的布局,在这种布局中,数据记录的每个字段都显示为控件中的一行;而 FormView 控件则不指定用于显示记录的预定义布局。实际上,您将创建包含控件的模板,以显示记录中的各个字段。该模板包含用于设置窗体布局的格式、控件和绑定表达 式。
特征:一条记录,自由定制;带分页功能。

浙公网安备 33010602011771号