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