Share via


Columnas de DataGrid

Cuando trabaje con un control de servidor Web DataGrid, puede generar varios tipos diferentes de columnas en la cuadrícula:

  • Columnas enlazadas
  • Columna de botones
  • Columnas de hipervínculos
  • Columnas de plantilla

Además, es posible permitir también que la cuadrícula genere columnas automáticamente en función de la información del origen de datos de la cuadrícula.

Columnas generadas automáticamente

Si la propiedad AutoGenerateColumn del control DataGrid está definida como true, el control generará y mostrará una columna enlazada para cada columna que se puede enlazar del origen de datos. Los tipos de columna enlazable son tipos primitivos, string, datetime y decimal. Si tiene un campo en el origen de datos que no es un tipo de columna admitido, el control no crea una columna para ese campo. Siempre y cuando el origen de datos tenga al menos una columna enlazable, el control DataGrid se enlaza al origen y genera las columnas enlazables, y omite las que no lo son. Si AutoGenerateColumns es true y crea columnas explícitas, la cuadrícula mostrará tanto las columnas explícitas como las generadas automáticamente.

El uso de columnas generadas automáticamente es un modo rápido y fácil de mostrar información en la cuadrícula. Puesto que estas columnas se generan automáticamente en tiempo de ejecución y se muestran en el orden en el que tienen lugar en el origen de datos, no dispone de flexibilidad en cuanto al diseño de estas columnas. Por tanto, el uso de columnas generadas automáticamente se recomienda principalmente para la presentación de datos sencillos, páginas prototipo y otras situaciones donde no es necesario un diseño cuidado de las columnas. Defina columnas explícitamente cuando desee controlar las columnas que se visualizan y el orden.

Columnas enlazadas

Una columna enlazada (elemento BoundColumn) muestra información de una columna de un origen de datos. Normalmente, se agrega una columna enlazada a la cuadrícula por cada columna de datos que se desea mostrar. Utilice columnas enlazadas cuando desee elegir las columnas de datos que se mostrarán en la cuadrícula. Las columnas enlazadas permiten también definir un gran número de propiedades para especificar características como:

  • Texto, fuente y color del encabezado y el pie de la columna.
  • Ancho de la columna.
  • Formato de los datos.
  • Si la columna es de sólo lectura (es decir, si mostrará un control editable cuando la fila esté en modo de edición).

Para obtener información detallada sobre la creación de columnas enlazadas en el Diseñador de Web Forms de Visual Studio, vea Agregar columnas enlazadas a un control DataGrid de servidor Web. Para obtener información detallada sobre la creación de columnas enlazadas, vea DataGrid (Control de servidor Web).

Columnas de botones

Las columnas de botones permiten agregar columnas de cuadrícula con botones que permiten a los usuarios realizar funciones específicas de fila como seleccionar la fila actual, eliminarla o ponerla en modo de edición. Puede crear botones para funciones predefinidas o crear su propia funcionalidad (por ejemplo, un botón "Agregar a carro de la compra").

Puede definir dos tipos de columnas de botones:

  • Un elemento EditCommandColumn está predefinido para que contenga tres botones. En modo de presentación, la columna muestra un botón Editar en el que pueden hacer clic los usuarios para poner la fila en modo de edición (con controles editables). Cuando la fila está en modo de edición, el botón Editar es reemplazado por dos botones: Actualizar y Cancelar. Puede especificar el texto (título) de los botones.
  • Un elemento ButtonColumn puede contener cualquier botón arbitrario. Puede utilizar un elemento ButtonColumn para definir cierta funcionalidad predefinida (como seleccionar una fila o eliminarla) o para crear botones para su propia funcionalidad.

Cuando defina un botón para una columna de botones, puede especificar el texto (título) del botón y su tipo (LinkButton o Button). Además, para botones del elemento ButtonColumn, se especifica una propiedad CommandName especial. El parámetro de esta propiedad determina lo que ocurre cuando se hace clic en el botón. Por ejemplo:

Parámetro Resultado
Select Al hacer clic en el botón, se selecciona automáticamente la fila.
Delete Al hacer clic en el botón, se ejecuta el comando DeleteCommand del control DataGrid.
Un valor personalizado (no predefinido) Al hacer clic en el botón, se ejecuta el comando ItemCommand genérico del control DataGrid.

Nota   Los parámetros de la propiedad CommandName distinguen mayúsculas y minúsculas.

En la mayoría de los casos, el clic en el botón da lugar a un evento que se controla después. Si la propiedad CommandName se define como "Select", se genera el evento, pero también es controlado automáticamente por la cuadrícula para seleccionar las filas especificadas. Normalmente, en el controlador, se determina la fila afectada y la acción correspondiente; por ejemplo, poner la fila en modo de edición (o cancelarlo), eliminar la fila de datos representada por esa fila de la cuadrícula, etc. Para botones personalizados, la cuadrícula genera el evento ItemCommand y pasa el valor de la propiedad CommandName como parte del objeto EventArgs.

Para obtener información detallada sobre la creación de columnas de botones en el Diseñador de Web Forms de Visual Studio, vea Agregar columnas botón a un control DataGrid de servidor Web. Para obtener información detallada sobre la creación de columnas de botones, vea DataGrid (Control de servidor Web).

Para implementar la funcionalidad de columnas de botones, vea los temas siguientes:

Columnas de hipervínculos

Una columna de hipervínculos (elemento HyperLinkColumn) muestra un vínculo en cada fila. Puede especificar texto estático para el hipervínculo u obtener el texto del vínculo de una columna de datos. De manera similar, puede especificar una dirección URL estática como destino del vínculo u obtener dicha dirección de un origen de datos.

Para obtener información detallada sobre la creación de columnas de hipervínculos en el Diseñador de Web Forms de Visual Studio, vea Agregar columnas hipervínculo a un control DataGrid de servidor Web. Para obtener información detallada sobre la creación de columnas de botones como elementos HTML, vea DataGrid (Control de servidor Web).

Columnas de plantilla

Una columna de plantilla permite crear un diseño personalizado para una columna basado en cualquier mezcla de controles y texto estático. Las columnas de plantilla son similares a las plantillas utilizadas los controles DataList y Repeater, con la diferencia de que se crea un diseño sólo para una columna en lugar de un elemento de tipo fila. Para obtener información detallada sobre plantillas, vea Plantillas de controles de servidor Web.

Puesto que ofrecen control total sobre el contenido de la columna, las columnas de plantilla proporcionan la mayor flexibilidad para el diseño de columnas. Algunos ejemplos:

  • Puede mezclar fácilmente texto estático con controles.
  • Puede especificar los controles que se utilizan en modo de edición. Cuando una columna enlazada está en modo de edición, muestra un cuadro de texto sin importar el tipo de datos que se va a editar. Un control de plantilla permite especificar una casilla de verificación, una lista desplegable u otro control apropiado en su lugar.

Dentro de la columna de plantilla, se pueden crear hasta cuatro tipos de plantilla diferentes:

  • HeaderTemplate y FooterTemplate definen lo que aparecerá en el encabezado y el pie de la columna respectivamente.
  • ItemTemplate define cómo aparece la información en la columna cuando la fila está en modo de presentación. Con frecuencia, se agregan controles como Label o Literal para mostrar datos.
  • EditItemTemplate define los controles (y el texto, si procede) que aparecen en la columna cuando está en modo de edición. Normalmente, esto implica cuadros de texto, casillas de verificación y listas desplegables.

Para obtener información detallada sobre la creación de columnas de plantilla en el Diseñador de Web Forms de Visual Studio, vea Agregar columnas plantilla a un control DataGrid de servidor Web. Para obtener información detallada sobre la creación de columnas de plantilla como elementos HTML, vea DataGrid (Control de servidor Web).

Vea también

Introducción al control DataGrid de servidor Web | DataGrid (Control de servidor Web)