Сравнение серверных веб-элементов управления GridView и DataGrid

Visual Studio 2010

Обновлен: Ноябрь 2007

Элемент управления GridView призван заменить элемент управления DataGrid. Как и элемент управления DataGrid, элемент управления GridView рассчитан на отображение данных в таблицах HTML. Будучи привязанными к источнику данных, элементы управления DataGrid и GridView отображают строки из источника данных DataSource в качестве строк в выходной таблице.

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

  • Более широкие возможности режима конструирования.

  • Улучшенные возможности привязки к источникам данных.

  • Автоматическая обработка сортировки, разбиения по страницам, обновления и удаления.

  • Дополнительные типы столбцов и операции над столбцами во время конструирования.

  • Настраиваемый пользовательский интерфейс (UI) элемента управления страничного навигатора со свойством PagerTemplate.

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

  • Различия в поддержке настраиваемого разбиения по страницам.

  • Различия в модели событий.

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

При работе в конструкторе, например Microsoft Visual Studio, можно использовать функции конструирования, поддерживаемые элементом управления GridView. Элемент управления GridView поддерживает панель смарт-тега, которая представляет удобный интерфейс для выполнения таких общих задач, как задание значений свойств и запуск редактора шаблонов.

Обычно свойству DataSource элемента управления DataGrid или GridView присваивается элемент управления DataSet или DbDataReader, либо же коллекция, например Array, ArrayList или объект другого класса из пространства имен System.Collections. Элементы управления DataGrid и GridView можно привязать к любому объекту, реализующему интерфейс IEnumerable или IListSource.

Несмотря на то, что элемент управления DataGrid поддерживает декларативную привязку к элементу управления DataSourceControl, при этом будет поддерживаться только выборка данных. Сортировку, разбиение по страницам, обновление и удаление необходимо программировать вручную. Элемент управления GridView поддерживает свойство DataSourceID, значением которого может быть любой объект, реализующий интерфейс IDataSource; соответственно, этот элемент управления может использовать функциональность сортировки, разбиения по страницам, обновления и удаления, поддерживаемую источником данных, например элементом управления SqlDataSource.

Элемент управления GridView поддерживает следующие типы столбцов: BoundField, HyperLinkField, ButtonField, CommandFieldImageField и CheckBoxField.

Для реализации разбиения по страницам в элементе управления DataGrid требуется написание дополнительного кода. Элемент управления GridView обеспечивает автоматическую поддержку разбиения по страницам путем задания значения свойства PagerSettings. Свойство PagerSettings поддерживает четыре режима: Numeric (по умолчанию), NextPrevious, NumericFirstLast и NextPreviousFirstLast. В режиме Numeric вместо ссылок «следующая/предыдущая» отображаются ссылки на номера страниц, а использование параметра NumericFirstLast позволяет добавить ссылки на первую и последнюю страницы. Свойство PagerStyle элемента управления GridView можно использовать для задания стилей и расположения элемента управления страничного навигатора.

Помимо этого, кнопки элемента управления страничного навигатора в элементе управления GridView можно настроить с помощью шаблона PagerTemplate.

Настраиваемое разбиение по страницам в элементе управления GridView обеспечивается привязанным элементом управления источника данных, в то время как в элементе управления DataGrid оно обеспечивается механизмом AllowCustomPaging.

Модель событий у элементов управления DataGrid и GridView различна.

Элемент управления DataGrid создает одиночные события, соответствующие операциям, тогда как элемент управления GridView способен создавать как события, предшествующие операции, так и события, следующие после операции. Элемент управления GridView поддерживает событие Sorting, которое происходит при сортировке по полю. Обратите внимание, что это событие сортировки происходит перед тем, как элемент управления GridView автоматически произведет операцию сортировки, что позволяет получить или изменить значение свойства SortExpression, или же отменить данную операцию путем присваивания значения true свойству Cancel в переданных аргументах события.

Элемент управления GridView поддерживает событие Sorted, происходящее после того, как элемент управления GridView завершает операцию сортировки, что позволяет изменить или отформатировать результат операции сортировки. Для сравнения, элемент управления DataGrid поддерживает событие SortCommand, происходящее при сортировке по столбцу. Аналогично, элемент управления GridView поддерживает события RowUpdating и RowUpdated, которые происходят перед и, соответственно, после того, как элемент управления GridView автоматически выполнит операцию обновления. Для сравнения, элемент управления DataGrid поддерживает событие UpdateCommand, которое происходит, когда для элемента в сетке нажимается кнопка Обновить.

Дополнительные сведения о событиях GridView см. в разделе События серверного веб-элемента управления GridView.

Показ: