
[英]In asp.net , what is the difference between gridview and repeater controls
[英]The Difference Between a DataGrid and a GridView in ASP.NET?
我已经做了一段时间的ASP.NET开发,之前我已经使用过GridView和DataGrid控件来处理各种各样的事情,但是我从来没有找到使用其中一个的真正好理由。 我想知道:
这两个ASP.NET控件有什么区别? 两者的优点和缺点是什么? 是一个更快吗? 较新的? 更容易维护?
控件的intellisense摘要似乎没有描述两者之间的任何差异。 它们都可以查看,编辑和排序数据,并在运行时自动生成列。
编辑: Visual Studio 2008不再将DataGrid列为工具箱中的可用控件。 如果您手动输入它,它仍然可用(我认为是遗留支持)。
DataGrid是一个ASP.NET 1.1控件,仍然受支持。 GridView到达2.0,使某些任务更简单,添加了不同的数据绑定功能:
此链接具有DataGrid和GridView功能的比较 -
https://msdn.microsoft.com/en-us/library/05yye6k9(v=vs.100).aspx
GridView
控件是DataGrid
控件的后继者。 与DataGrid
控件一样, GridView
控件设计用于在HTML表格中显示数据。 绑定到数据源时, DataGrid
和GridView
控件每个都会将DataSource
中的一行显示为输出表中的一行。
DataGrid
和GridView
控件都是从WebControl
类派生的。 虽然它具有与DataGrid
控件类似的对象模型,但GridView控件还具有许多与DataGrid
控件相比的新功能和优势,其中包括:
GridView
控件和DataGrid
控件之间的差异包括:
使用DataGrid
控件时,对数据进行排序,分页和就地编辑需要额外的编码。 GridView
控件使您无需编写任何代码即可添加排序,分页和编辑功能。 相反,您可以通过在控件上设置属性来自动执行这些任务以及其他常见任务(如数据绑定到数据源)。
DataGrid最初是在.NET 1.0中。 在.NET 2.0中引入了GridView(并替换了DataGrid)。 它们提供几乎相同的功能。
如果您在Visual Studio 2008 / .NET 3.5中工作,则可能不应使用它们。 使用ListView - 它为您提供了GridView的功能以及转发器的样式灵活性。
安全方面的一个关键区别是DataGrid使用BoundColumn,它不对绑定数据进行HtmlEncode。 没有任何属性可以打开或关闭HtmlEncoding,因此您需要以某种方式在代码中执行此操作。
GridView使用BoundField,默认情况下对绑定数据执行HtmlEncode,如果需要将其关闭,则它具有HtmlEncode属性。
关键的区别在于ViewState管理IIRC。 DataGrid需要打开ViewState才能具有编辑和排序功能。
数据网格
DataGrid
是在Asp.Net 1.0
中引入的。 SortCommand event
并重新绑定所需的网格,对于分页,我们需要处理PageIndexChanged event
并重新绑定所需的网格。 GridView
相比,性能更快。 网格视图
Asp.Net 2.0
中引入的。 Paging and Sorting
。 Update and Delete operations
。 DataGrid
相比,性能较慢。 像Item
这样的events
和properties
已更改为Row
。
例如,
ItemCommand - RowCommand
ItemDataBound - RowDataBound
e.Item.ItemType - e.Row.RowType
gridview和detail视图之间的一些基本差异
与DataGrid控件相比,GridView控件还具有许多新功能和优势,其中包括:
·更丰富的设计时功能。 ·改进的数据源绑定功能。 ·自动处理排序,分页,更新和删除。 ·其他列类型和设计时列操作。 ·具有PagerTemplate属性的自定义寻呼机用户界面(UI)。
GridView控件和DataGrid控件之间的差异包括:·不同的自定义分页支持。 ·不同的事件模型。
其中一个区别是HTML输出。 数据网格将输出标题的TD,并且gridview将输出TH。 这可能会导致显示不直观的变化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.