Я немного занимался разработкой ASP.NET и раньше использовал разные элементы управления GridView и DataGrid для разных целей, но я никогда не мог найти действительно вескую причину для того или другого. Я хотел бы знать:
В чем разница между этими двумя элементами управления ASP.NET? Каковы преимущества или недостатки обоих? Один быстрее? Новее? Проще поддерживать?
Сводная информация об элементах управления, по-видимому, не описывает никакой разницы между ними. Они оба могут просматривать, редактировать и сортировать данные и автоматически генерировать столбцы во время выполнения.
Изменить: 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
DataGrid изначально был в .NET 1.0. GridView был представлен (и заменил DataGrid) в .NET 2.0. Они обеспечивают практически идентичную функциональность.
Ключевое различие заключается в управлении ViewState IIRC. Для DataGrid требуется включить ViewState, чтобы иметь возможность редактирования и сортировки.
Если вы работаете в Visual Studio 2008 / .NET 3.5, вы, вероятно, не должны использовать либо. Используйте ListView - он предоставляет вам функции GridView в сочетании с гибкостью стилей повторителя.
некоторые основные различия между gridview и подробным представлением
элемент управления GridView также обладает рядом новых функций и преимуществ по сравнению с элементом управления DataGrid, в том числе:
· Более богатые возможности времени разработки. · Улучшенные возможности привязки источника данных. · Автоматическая обработка сортировки, подкачки страниц, обновлений и удалений. · Дополнительные типы столбцов и операции со столбцами времени разработки. · Настраиваемый пользовательский интерфейс пейджера со свойством PagerTemplate.
Различия между элементом управления GridView и элементом управления DataGrid: · Различная поддержка пользовательских страниц. · Различные модели событий.
Одним из ключевых отличий безопасности является то, что DataGrid использует BoundColumn, который не HtmlEncode связанных данных. Нет свойства для включения или выключения HtmlEncoding, поэтому вам нужно как-то сделать это в коде.
GridView использует BoundField, который по умолчанию выполняет HtmlEncode для связанных данных и имеет свойство HtmlEncode, если вам необходимо его отключить.
Элемент GridView
управления является преемником элемента DataGrid
управления. Как и DataGrid
элемент управления, GridView
элемент управления был разработан для отображения данных в таблице HTML. При привязке к источнику данных каждый из элементов управления DataGrid
и GridView
отображает строку из DataSource
строки как выходную таблицу.
Оба , DataGrid
и средства GridView
управления являются производными от WebControl
класса. Хотя объектная модель аналогична модели элемента DataGrid
управления, элемент управления GridView также обладает рядом новых функций и преимуществ по сравнению с элементом DataGrid
управления, в том числе:
- Более богатые возможности времени разработки.
- Улучшены возможности привязки источника данных.
- Автоматическая обработка сортировки, подкачки страниц, обновлений и удалений.
- Дополнительные типы столбцов и операции со столбцами времени разработки.
- Настраиваемый пользовательский интерфейс пейджера со свойством PagerTemplate.
Различия между GridView
контролем и DataGrid
контролем включают в себя:
- Различная поддержка подкачки.
- Различные модели событий.
Сортировка, разбиение по страницам и редактирование данных на месте требуют дополнительного кодирования при использовании элемента DataGrid
управления. Элемент GridView
управления позволяет добавлять возможности сортировки, подкачки и редактирования без написания кода. Вместо этого вы можете автоматизировать эти задачи, наряду с другими распространенными задачами, такими как привязка данных к источнику данных, установив свойства в элементе управления.
Одним из отличий является вывод HTML. Сетка данных будет выводить TD для заголовка, а просмотр сетки будет выводить TH. Это может вызвать неинтуитивные изменения на дисплее.
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