51

我从事 ASP.NET 开发已经有一段时间了,以前我在各种事情上都使用过 GridView 和 DataGrid 控件,但我从来没有找到使用其中一个或另一个的真正好理由。我想知道:

这 2 个 ASP.NET 控件有什么区别?两者的优点或缺点是什么?有更快的吗?较新?更容易维护?

控件的智能感知摘要似乎没有描述两者之间的任何区别。它们都可以查看、编辑和排序数据,并在运行时自动生成列。

编辑: Visual Studio 2008 不再将 DataGrid 列为工具箱中的可用控件。如果您手动输入它,它仍然可用(我假设为遗留支持)。

4

9 回答 9

47

DataGrid 是一个 ASP.NET 1.1 控件,仍然受支持。GridView 到了 2.0,使某些任务变得更简单,添加了不同的数据绑定功能:

此链接比较了 DataGrid 和 GridView 功能 -

https://msdn.microsoft.com/en-us/library/05yye6k9(v=vs.100).aspx

于 2008-08-07T01:06:22.687 回答
12

GridView控件是控件的继承者DataGrid。与DataGrid控件一样,该GridView控件旨在在 HTML 表格中显示数据。当绑定到数据源时,DataGridGridView控件每个都将 aDataSource中的一行显示为输出表中的一行。

DataGrid和控件都GridView派生自WebControl该类。尽管它具有与控件相似的对象模型DataGrid,但 GridView 控件也具有许多优于DataGrid控件的新功能和优势,包括:

  • 更丰富的设计时功能。
  • 改进的数据源绑定功能。
  • 自动处理排序、分页、更新和删除。
  • 其他列类型和设计时列操作。
  • 具有 PagerTemplate 属性的自定义寻呼机用户界面 (UI)。

GridView控制与控制的区别DataGrid包括:

  • 不同的自定义分页支持。
  • 不同的事件模型。

DataGrid使用控件时,对数据进行排序、分页和就地编辑需要额外的编码。该GridView控件使您无需编写任何代码即可添加排序、分页和编辑功能。相反,您可以通过在控件上设置属性来自动执行这些任务以及其他常见任务,例如将数据绑定到数据源。

于 2014-02-20T07:47:19.477 回答
7

DataGrid 最初是在 .NET 1.0 中。GridView 在 .NET 2.0 中被引入(并取代了 DataGrid)。它们提供几乎相同的功能。

于 2008-08-07T01:05:56.620 回答
5

如果您在 Visual Studio 2008 / .NET 3.5 中工作,您可能不应该使用任何一种。使用 ListView - 它为您提供了 GridView 的功能以及中继器的样式灵活性。

于 2008-08-18T15:52:36.943 回答
1

关键区别在于 ViewState 管理 IIRC。DataGrid 需要打开 ViewState 才能具有编辑和排序功能。

于 2008-08-18T15:42:29.660 回答
1

安全方面的一个关键区别是 DataGrid 使用不 HtmlEncode 绑定数据的 BoundColumn。也没有打开或关闭 HtmlEncoding 的属性,因此您需要以某种方式在代码中执行此操作。

GridView 使用 BoundField,默认情况下对绑定数据执行 HtmlEncode,如果您需要将其关闭,它具有 HtmlEncode 属性。

于 2012-07-09T22:20:11.087 回答
1

数据网格

  1. DataGridAsp.Net 1.0.
  2. 对于排序,我们需要处理SortCommand event和重新绑定所需的网格,对于分页,我们需要处理PageIndexChanged event 和重新绑定所需的网格。
  3. 需要编写代码来实现更新和删除操作。
  4. 不支持自动格式或样式功能。
  5. 性能比GridView.

网格视图

  1. GridView 是随Asp.Net 2.0.
  2. 内置支持Paging and Sorting.
  3. 内置支持Update and Delete operations.
  4. 支持自动格式或样式功能。
  5. 与 相比,性能较慢DataGrid

和like已更改events为。propertiesItemRow

例如,

  • ItemCommand - RowCommand

  • ItemDataBound - RowDataBound

  • e.Item.ItemType - e.Row.RowType

于 2019-04-06T07:08:52.627 回答
0

网格视图和详细信息视图之间的一些基本区别

与 DataGrid 控件相比,GridView 控件还具有许多新功能和优势,其中包括:

· 更丰富的设计时功能。· 改进的数据源绑定能力。· 自动处理排序、分页、更新和删除。· 附加列类型和设计时列操作。· 具有 PagerTemplate 属性的自定义寻呼机用户界面 (UI)。

GridView 控件和DataGrid 控件之间的区别包括: · 不同的自定义分页支持。·不同的事件模型。

于 2008-11-21T07:28:09.790 回答
0

区别之一是 HTML 输出。数据网格将输出标题的 TD,而网格视图将输出 TH。这可能会导致显示出现不直观的变化。

于 2018-04-05T14:47:40.097 回答