Разница между DataGrid и GridView в ASP.NET?

Я занимаюсь разработкой ASP.NET уже некоторое время, и раньше я использовал элементы управления GridView и DataGrid для различных вещей, но я так и не смог найти действительно вескую причину для использования того или другого. Я хотел бы знать:

В чем разница между этими двумя элементами управления ASP.NET? Каковы преимущества и недостатки обоих? Один быстрее? Новее? Легче поддерживать?

Сводка intellisense для элементов управления, похоже, не описывает никакой разницы между ними. Они оба могут просматривать, редактировать и сортировать данные, а также автоматически создавать столбцы во время выполнения.

Изменить: Visual Studio 2008 больше не указывает DataGrid как доступный элемент управления на панели инструментов. Он по-прежнему доступен (я полагаю, для поддержки устаревших версий), если вы введете его вручную.

Ответов (9)

Решение

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 отображает строку из a DataSource как строку в выходной таблице.

Оба , DataGrid и средства GridView управления являются производными от WebControl класса. Хотя он имеет объектную модель, аналогичную модели элемента DataGrid управления, элемент управления GridView также имеет ряд новых функций и преимуществ по сравнению с элементом DataGrid управления, в том числе:

  • Более широкие возможности во время разработки.
  • Улучшенные возможности привязки источников данных.
  • Автоматическая обработка сортировки, разбиения по страницам, обновлений и удалений.
  • Дополнительные типы столбцов и операции с столбцами во время разработки.
  • Настраиваемый пользовательский интерфейс (UI) пейджера со свойством PagerTemplate.

Различия между элементом GridView управления и элементом DataGrid управления включают:

  • Поддержка различных настраиваемых страниц.
  • Различные модели событий.

Сортировка, разбиение по страницам и редактирование данных на месте требует дополнительного кодирования при использовании элемента DataGrid управления. Этот GridView элемент управления позволяет добавлять возможности сортировки, разбиения по страницам и редактирования без написания кода. Вместо этого вы можете автоматизировать эти задачи вместе с другими общими задачами, такими как привязка данных к источнику данных, путем установки свойств в элементе управления.

Одно из ключевых отличий с точки зрения безопасности заключается в том, что DataGrid использует BoundColumn, который не HtmlEncode для привязанных данных. Также нет свойства для включения или выключения HtmlEncoding, поэтому вам нужно как-то сделать это в коде.

GridView использует BoundField, который по умолчанию выполняет HtmlEncode для связанных данных и имеет свойство HtmlEncode, если вам нужно его отключить.

Одно из отличий - вывод HTML. Сетка данных будет выводить TD для заголовка, а сетка выводит TH. Это может вызвать неинтуитивные изменения на дисплее.

DataGrid

  1. DataGridбыл представлен с Asp.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.

То events и properties вроде Item изменилось как Row .

Например,

  • ItemCommand - RowCommand

  • ItemDataBound - RowDataBound

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

DataGrid изначально был в .NET 1.0. GridView был представлен (и заменил DataGrid) в .NET 2.0. Они обеспечивают практически идентичную функциональность.

Если вы работаете в Visual Studio 2008 / .NET 3.5, вам, вероятно, не следует использовать ни то, ни другое. Используйте ListView - он дает вам возможности GridView в сочетании с гибкостью стиля репитера.

Ключевое отличие заключается в управлении ViewState IIRC. DataGrid требует, чтобы ViewState был включен, чтобы иметь возможность редактирования и сортировки.

некоторые базовые различия между представлением сетки и подробным представлением

Элемент управления GridView также имеет ряд новых функций и преимуществ по сравнению с элементом управления DataGrid, в том числе:

· Более широкие возможности во время разработки. · Улучшенные возможности привязки источников данных. · Автоматическая обработка сортировки, разбиения по страницам, обновлений и удалений. · Дополнительные типы столбцов и операции с столбцами во время разработки. · Настраиваемый пользовательский интерфейс (UI) пейджера со свойством PagerTemplate.

Различия между элементом управления GridView и элементом управления DataGrid включают: · Различная поддержка настраиваемого разбиения по страницам. · Различные модели событий.