Introducción al enlace de datos en las páginas de formularios Web Forms

Como en la mayoría de los tipos de formularios, las páginas de formularios Web Forms permiten mostrar información enlazando controles a un origen de datos. Sin embargo, debido a la naturaleza de las páginas de formularios Web Forms y a la arquitectura de la programación Web, el enlace de datos en este tipo de páginas difiere ligeramente del efectuado en otros formularios más tradicionales, como los formularios Windows Forms.

Este tema presenta información general sobre el enlace de datos en páginas de formularios Web Forms, el modo de trabajar con los enlaces de datos en las aplicaciones Web y dónde encontrar más información sobre los enlaces de datos y los accesos a datos en páginas de formularios Web Forms.

Enlace de datos en formularios Web Forms: sólo lectura

La arquitectura de enlace de datos de las páginas de formularios Web Forms se basa en la idea de que la mayoría de los accesos a datos en una aplicación Web son de sólo lectura, es decir, que las páginas frecuentemente muestran información de un almacén de datos, pero con una frecuencia mucho menor necesitan escribir datos en dicho almacén. Existen muchos ejemplos de páginas que presentan datos de sólo lectura:

  • Una página de resultados de una búsqueda de otras páginas Web, productos, etc. La información en una página de resultados de una búsqueda se presenta a menudo como vínculos con otras páginas, y rara vez los usuarios tienen que introducir datos que se deban guardar en una base de datos.
  • Una página que proporcione resultados de eventos deportivos, información meteorológica, etc.
  • La página de un portal. Muchas páginas de portales (como la página principal de MSN) permiten a los usuarios personalizar las páginas y elegir entre los distintos tipos de información que pueden mostrar: noticias, información financiera, ocio, etc. Esta información en sí misma se proporciona a la página como datos XML que pueden transformarse según las preferencias del usuario.
  • Una página que proporcione información sobre cuentas y transacciones financieras a un banco o a un cliente bursátil.

Debido a que la arquitectura de enlace de datos de los formularios Web Forms no realiza actualizaciones, es decir, que no escribe datos del control en el origen de datos, si se desea realizar estas operaciones se deberá incorporar la lógica necesaria. La lógica para realizar actualizaciones en las páginas de formularios Web Forms varía considerablemente según diversos factores:

  • El tipo de origen de datos.
  • Si se están almacenando datos en una caché mediante un conjunto de datos o no.
  • El tipo de control con el que se trabaja: por ejemplo, si el control muestra varios registros, como las cuadrículas, o valores individuales, como los cuadros de texto.
  • El tipo de control de concurrencia que se desee usar.

A causa de los distintos factores asociados con la actualización de las páginas de formularios Web Forms, es preciso implementar una lógica de actualización propia que se ajuste a los requisitos específicos de la página y de la aplicación. Para obtener más información, vea Actualizaciones de conjuntos de datos en Visual Studio .NET.

Propiedades de enlace

El enlace de datos en las páginas de formularios Web Forms es flexible: se puede enlazar cualquier propiedad de un control con los datos, mientras que en el enlace de datos tradicional, habitualmente se enlaza la propiedad de presentación (por ejemplo, la propiedad Text de un cuadro de texto) con el origen de datos.

En las páginas de formularios Web Forms, el origen de datos puede ser casi cualquier tipo de información disponible en la página, ya provenga de una base de datos, de un documento XML, de otro control o proceso, o incluso de una operación matemática realizada por el usuario.

Además, el enlace de datos de los formularios Web Forms permite asignar estos datos a cualquier propiedad o control. Gracias a todo esto, se puede emplear el enlace de datos para realizar acciones tales como:

  • Establecer el texto que se mostrará en controles como TextBox, Label, Button, LinkButton, etc.
  • Establecer la página de destino (el atributo HREF) de un control de vínculo.
  • Enlazar un control CheckBox a un valor booleano para establecer directamente el estado marcado para el control.
  • Establecer el gráfico de un control Image enlazando su propiedad ImageUrl a una columna de base de datos que contiene la URL o el nombre de un archivo de gráficos.
  • Establecer el color, la fuente o el tamaño de los controles. Esto puede resultar muy útil como medio para implementar las preferencias del usuario que se almacenarán en una base de datos o en cualquier otro almacén de datos.

En otras palabras, el enlace de datos se convierte en un medio automático para establecer cualquier propiedad, accesible en tiempo de ejecución, de cualquier control de la página.

Enlace de controles de varios registros y de valores únicos

Existen dos tipos de enlace a datos compatibles con los controles:

  • Los controles de varios registros pueden mostrar uno o más registros de datos a la vez, tales como los controles de servidor Web Repeater, DataList, DataGrid y el control de servidor HTML HtmlSelect.

  • Los controles de valores únicos pueden mostrar un valor de datos en un momento dado. Esta categoría incluye a la mayoría de los controles de servidores Web y de servidores HTML, incluidos los controles TextBox, Label, HtmlInputText y HtmlAnchor.

    Nota   Todos los controles permiten enlazar propiedades individuales con valores de datos únicos. Por ejemplo, un control DataList puede mostrar varios registros a la vez, pero se puede enlazar su propiedad BackColor con un valor de datos único.

El enlace de datos funciona de modo distinto dependiendo de si se enlaza con varios registros o con un valor de datos único. Para mostrar varios registros, se enlaza un control de este tipo con un origen de datos que contenga varios registros: una matriz, una colección, una tabla de datos, etc. El único requisito es que el origen de datos implemente la interfaz IEnumerable. El comportamiento predeterminado es que cuando se produzca el enlace de datos, el control de varios registros recorra todos los elementos de datos del origen de datos.

Para enlazar con un valor único, por otra parte, se debe especificar qué propiedad se ha de enlazar y de qué valor de datos debe obtener su valor.

Para obtener más información sobre el modo en que funciona el enlace de datos en cada uno de los tipos de controles, vea Enlace a datos de varios registros y de valores únicos para páginas de formularios Web Forms.

Enlazar en tiempo de diseño frente a tiempo de ejecución

Si se enlazan controles con datos de un conjunto de datos, se pueden especificar las propiedades de enlace de los controles en tiempo de diseño. Esto incluye el enlace con tablas de conjuntos de datos y con vistas de datos. Por ejemplo, se pueden usar herramientas de tiempo de diseño para especificar que un control DataGrid se enlace con una tabla de un conjunto de datos. Para obtener más información, vea Enlace de datos en controles de servidor Web de varios registros.

Igualmente, se puede enlazar un control TextBox con un valor de una fila devuelto por una vista de datos. Visual Studio incluye herramientas que ayudan a especificar fácilmente este tipo de enlace en tiempo de diseño. Para obtener más información, vea Enlace de datos en controles de servidor Web de un sólo registro en tiempo de diseño.

Sin embargo, en algunas situaciones, no resulta práctico especificar las propiedades de enlace en tiempo de diseño. Normalmente, si el origen de datos con el que se desea enlazar no tiene una instancia en la página de formularios Web Forms en tiempo de diseño, será preciso realizar el enlace de datos en tiempo de ejecución. He aquí algunos ejemplos en los que se debe hacer esto:

  • Enlaces de controles con datos devueltos al ejecutar una instrucción SQL o un procedimiento almacenado en una base de datos.
  • Enlaces con objetos de cualquier tipo que no tengan una instancia hasta el tiempo de ejecución.

En tiempo de ejecución, los controles producen un evento DataBinding que se puede usar para obtener valores de datos y asignarlos a propiedades de los controles.

Vea también

Enlace a datos de varios registros y de valores únicos para páginas de formularios Web Forms | Expresiones de enlace de datos para páginas de formularios Web Forms | Enlace de datos de controles de servidor HTML | Asistente para formularios de datos