Si está familiarizado con ASP clásico, entonces estará familiarizado con la sintaxis de enlace de datos en ASP.NET, incluso si las funciones no son las mismas. La expresión del enlace de datos es el código entre <%# y %> en el archivo ASPX. Permite vincular datos a un controlador, así como propiedades, expresiones y resultados de llamadas a métodos en la página que se vinculan al controlador. Aunque esta característica es fácil de usar, a veces causa confusión al determinar qué contenido se permite vincular y si se ha utilizado.
Elementos de enlace de datos
Cuando se llama al método DataBind en ASP.NET de la página, la expresión de enlace de datos se vincula a las propiedades, propiedades de control del servidor y fuentes de datos en ASP.NET. Puede colocar una expresión en el lado numérico de un par de valor/valor de atributo al abrir una pestaña controlada por el servidor o en cualquier lugar de la página. Todas las expresiones de enlace de datos, sin importar dónde se coloquen, están encerradas entre caracteres <%# y %>.
Cuando se utiliza un controlador de datos (Repetidor, DataGrid, etc.), el parámetro de la expresión suele ser el nombre de la columna de la fuente de datos. De todos modos, se puede utilizar cualquier expresión válida siempre que devuelva un valor. Asimismo, se puede utilizar la misma sintaxis para controles de lista externos. Esto incluye mostrar valores en la página o ensamblar propiedades del controlador.
Container.DataItem es un alias de tiempo de ejecución de DataItem para un elemento específico. Asigna un solo elemento de una fuente de datos, como una fila de una consulta de datos o un solo elemento de un vector. El tipo de datos real del DataItem está determinado por la fuente de datos. Por lo tanto, cuando se trata de un vector de números enteros, el DataItem también es un número entero.
La siguiente lista revisa algunas situaciones de sintaxis de VB.NET:
<%# Container.DataItem %>--devuelve un vector de cadena
<%# Container.DataItem("expression") %>--devuelve un elemento específico en el campo contenedor DataView
< %# Container.DataItem.PropertyName %>--devuelve el valor de propiedad de una cadena específica en la fuente de datos
<%# CStr(Container.DataItem.PropertyName) %>--devuelve el valor de propiedad y lo convierte en un formato de cadena
cuando Al usar C#, la sintaxis es ligeramente diferente. La siguiente lista contiene el código C# correspondiente a la lista anterior. Tenga en cuenta que la sintaxis básica es la misma, pero hay cambios en la conversión de los valores de atributos y tipos de datos devueltos.
<%# Container.DataItem %>
<%# ((DataRowView)Container.DataItem)["PropertyName"] %>
<%# ((ObjectType)Container.DataItem).PropertyName %>
<%# ((ObjectType)Container. DataItem).PropertyName.ToString() %>
La sintaxis es coherente cuando actúa sobre las propiedades y métodos de la página. Siempre que se devuelva un valor de cadena, la sintaxis es exactamente la misma. La siguiente lista ofrece un ejemplo:
<%# propertyName %>--Devuelve valores de propiedad a nivel de página
<asp:ListBox id="lstValues" datasource='<%# propertyName %>' runat="server">-- Devuelve lo mismo que los valores de propiedad a nivel de página (vectores, conjuntos de objetos, etc.) vinculados al controlador de datos
<%# (objectName.PropertyName) %>--Mostrar valores de propiedad de objeto a nivel de página
<%# MethodName() %>--El método de página de visualización devuelve valores
Utilice la siguiente sintaxis para utilizar un único valor en la página (valores devueltos por propiedades y métodos, etc.)
<%= Valor %>
El código C# en el Listado A ilustra los datos vinculante en un formulario web ASP.NET. Selecciona el nombre y el número de teléfono del empleado de la tabla Empleados de SQL Sever Northwind. El valor de la consulta se muestra a través del controlador repetidor ASP.NET. Los valores de las columnas se insertan mediante enlace de datos. El título del formulario de la tabla se ensambla mediante una llamada a un método. Además, la propiedad ItemIndex de Dataitem se utiliza para mostrar el número de filas. La propiedad ItemIndex comienza en 0 y se incrementa en 1 entre visualizaciones.
El Listado B contiene el código VB.NET equivalente. La principal diferencia es que VB.NET usa paréntesis y C# usa corchetes. Y la conversión de filas es innecesaria en VB.NET.
Usar Contain.DataItem es un poco tedioso porque hay que prestar atención a los tipos de datos y a la conversión de tipos de datos en cualquier momento. Microsoft proporciona la clase DataBinder, que puede simplificar aún más el desarrollo.
El uso de la
clase DataBinder DataBinder se explica en detalle en la documentación de Microsoft (MSDN). Este método permite al diseñador RAD generar fácilmente una sintaxis de enlace de datos analizados. Este método también se puede utilizar en declaraciones de páginas de formularios web para simplificar la asignación de un tipo a otro.
Cuando utilice valores de datos en una página ASP.NET, puede utilizar el método Eval de la clase DataBinder para dejar que .NET haga el trabajo pesado. El método Eval acepta el objeto Container.DataItem previamente anulado; calcula los datos detallados para cada campo especificado en la expresión y los muestra. La sintaxis es la siguiente:
DataBinder.Eval(Container.DataItem, "nombre de campo", "formato opcional")
Con esta sintaxis, puede reescribir el primer ejemplo usando DataBinder.Eval. Consulte el Listado C para conocer su código C#. El Listado D contiene código equivalente a VB.NET.
DataBinder.Eval es muy poderoso para enviar trabajo al sistema, pero también tenga en cuenta que el tiempo y la sobrecarga de recursos que requiere el sistema para localizar elementos y determinar tipos de objetos/datos es alto.
El enlace de datoscon opciones enriquecidas
hace que poner datos en páginas ASP.NET sea relativamente sencillo. Hay muchas opciones diferentes de vinculación de datos para elegir, que incluyen: vincular datos a un controlador y determinar cómo mostrarlos, o elegir vincular datos a un controlador declarado en la página ASP.NET. Al final, todo se reduce a tus preferencias, pero tener muchas opciones es, en última instancia, algo bueno.
Tony Patton comenzó su carrera como desarrollador de software y obtuvo la certificación en Java, VB, Lotus y XML.