Compartir a través de


Comparar los controles GridView y DataGrid de servidor Web

Actualización: noviembre 2007

El control GridView es el sucesor del control DataGrid. Al igual que el control DataGrid, el control GridView se diseñó para mostrar los datos en una tabla HTML. Cuando se enlazan a un origen de datos, los controles DataGrid y GridView muestran cada uno una fila de un objeto DataSource como una fila en una tabla de resultados.

Tanto el control DataGrid como el control GridView se derivan de la clase WebControl. Aunque tiene un modelo de objetos similar al del control DataGrid, el control GridView también dispone de una serie de nuevas características y tiene ciertas ventajas sobre el control DataGrid, entre las que se incluyen:

  • Funciones en tiempo de diseño más amplias.

  • Funciones de enlace al origen de datos mejoradas.

  • Control automático de las operaciones de ordenación, paginación, actualización y eliminación.

  • Tipos de columna adicionales y operaciones de columna en tiempo de diseño.

  • Una interfaz de usuario de paginación personalizada con la propiedad PagerTemplate.

Entre las diferencias entre el control GridView y el control DataGrid se incluyen:

  • Diferente compatibilidad con la paginación personalizada.

  • Modelos de evento diferentes.

Funciones en tiempo de diseño mejoradas

Ordenar, paginar y editar en contexto los datos requiere codificación adicional cuando se utiliza el control DataGrid. El control GridView permite agregar funciones de ordenación, paginación y edición sin escribir código alguno. En su lugar, puede automatizar estas tareas junto con otras tareas comunes, como enlazar a datos un origen de datos, definiendo las propiedades del control.

Si está trabajando en un diseñador, como Microsoft Visual Studio, puede aprovechar las características de diseño integradas en el control GridView. El control GridView es compatible además con un panel de etiquetas inteligentes que proporciona una interfaz conveniente para realizar tareas comunes, como definir propiedades e iniciar la edición de plantillas.

Funciones de enlace al origen de datos mejoradas

Normalmente, un control DataSet, un control DbDataReader o una colección, como Array, ArrayList o alguna otra clase del espacio de nombres System.Collections, se asigna a la propiedad DataSource del control DataGrid o del control GridView. El control DataGrid y el control GridView pueden enlazar cualquier objeto que implemente la interfaz IEnumerable o IListSource.

Aunque el control DataGrid puede enlazar un control DataSourceControl mediante declaración, tan sólo puede hacerlo para seleccionar datos. Las funciones de ordenación, paginación, actualización y eliminación deben codificarse manualmente. El control GridView admite una propiedad DataSourceID que toma cualquier objeto que implemente la interfaz IDataSource y puede, por consiguiente, aprovechar las funciones de ordenación, paginación, actualización y eliminación del control del origen de datos, por ejemplo, del control SqlDataSource.

Tipos de columna adicionales

El control GridView admite los tipos de columnas siguientes: BoundField, HyperLinkField, ButtonField, CommandFieldImageField y CheckBoxField.

Compatibilidad con la paginación integrada y personalizada

El control DataGrid requiere codificación adicional para la función de paginación. El control GridView admite automáticamente la paginación cuando se define la propiedad PagerSettings. La propiedad PagerSettings admite cuatro modos: Numeric(predeterminado), NextPrevious, NumericFirstLast y NextPreviousFirstLast. El modo Numeric muestra vínculos de páginas numeradas en lugar de los vínculos "siguiente/anterior", y la opción NumericFirstLast agrega el primer y el último vínculo de la página. La propiedad PagerStyle del control GridView se puede utilizar para definir los estilos y la posición de la paginación.

Además, puede personalizar los botones de paginación del control GridView utilizando PagerTemplate.

El control del origen de datos enlazado es compatible con la paginación personalizada del control GridView, al contrario que el mecanismo AllowCustomPaging que proporciona el control DataGrid.

Modelo de evento expandido

Los controles DataGrid y GridView tienen modelos de evento diferentes.

El control DataGrid desencadena eventos únicos para las operaciones, mientras que el control GridView es capaz de desencadenar eventos previos y posteriores a las operaciones. El control GridView admite el evento Sorting, que se desencadena cuando se ordena un campo. Tenga en cuenta que este evento de ordenación se produce antes de que el control GridView supervise la operación de ordenación automáticamente, lo que permite examinar o cambiar la propiedad SortExpression o cancelar esta operación estableciendo la propiedad Cancel en true en los argumentos de evento transferidos.

El control GridView admite el evento Sorted, que se produce después de que el control GridView finaliza la operación de ordenación, lo que permite cambiar o dar formato al resultado de la operación de ordenación. En comparación, el control DataGrid admite el evento SortCommand, que se desencadena cuando se ordena una columna. De igual forma, el control GridView admite los eventos RowUpdating y RowUpdated, que se desencadenan antes y después de que el control GridView supervise automáticamente la operación de actualización. En comparación, el control DataGrid admite el evento UpdateCommand, que se produce cuando se hace clic en el botón Actualizar de un elemento en la cuadrícula.

Para obtener más información sobre los eventos GridView, vea Eventos del control GridView de servidor Web.

Vea también

Conceptos

Paginación en un control GridView de servidor Web

Modificar los datos de un control GridView de servidor Web

Tutorial: Ordenación simple del control de servidor Web GridView