【问题标题】:The Difference Between a DataGrid and a GridView in ASP.NET?ASP.NET 中 DataGrid 和 GridView 的区别?
【发布时间】:2010-09-05 11:26:21
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: asp.net


    【解决方案1】:

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

    此链接有 DataGrid 和 GridView 功能的比较 -

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

    【讨论】:

      【解决方案2】:

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

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

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

      GridView 控件和DataGrid 控件之间的区别包括:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              【解决方案6】:

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

              GridView 使用 BoundField,它默认对绑定的数据进行 HtmlEncode,如果需要关闭它,它有一个 HtmlEncode 属性。

              【讨论】:

                【解决方案7】:

                数据网格

                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 相比,性能较慢。

                eventsproperties 之类的 Item 已更改为 Row

                例如,

                • ItemCommand - RowCommand

                • ItemDataBound - RowDataBound

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

                【讨论】:

                  【解决方案8】:

                  gridview 和 details view 之间的一些基本区别

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

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

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

                  【讨论】:

                    【解决方案9】:

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

                    【讨论】:

                      猜你喜欢
                      • 2010-11-15
                      • 2011-06-13
                      • 1970-01-01
                      • 1970-01-01
                      • 2020-12-06
                      • 1970-01-01
                      • 1970-01-01
                      • 2011-03-08
                      • 1970-01-01
                      相关资源
                      最近更新 更多