Professional Documents
Culture Documents
El control asp:Repeater
La etiqueta asp:Repeater corresponde a un control ASP.NET que permite mostrar listas
de una forma más versátil que los controles vistos en la sección anterior. El control
asp:Repeater, implementado por la clase
System.Web.UI.WebControls.Repeater, permite aplicar una plantilla a la
visualización de cada uno de los elementos del conjunto de datos.
Dichas plantillas, que deberemos crear a mano, especifican el formato en el que se mostrará
cada elemento, usualmente mediante el uso de las etiquetas asociadas a la creación de tablas
en HTML. Para crear una tabla, se incluye la etiqueta <table> de comienzo de la tabla y la
cabecera de la misma en la plantilla HeaderTemplate, que corresponde a la cabecera
generada por el control asp:Repeater antes de mostrar los datos. De forma análoga, la
etiqueta </table> de cierre de la tabla se incluye en la plantilla FooterTemplate del
control asp:Repeater. Por su parte, cada uno de los elementos del conjunto de datos se
mostrará tal como especifiquemos en la plantilla ItemTemplate, que estará delimitada por
las etiquetas HTML <tr> y </tr>, correspondientes a una fila de la tabla. Como mínimo,
un control asp:Repeater debe incluir la definición de la plantilla ItemTemplate.
Todas las demás plantillas son opcionales.
Por último, hemos de especificar cómo se visualizará cada dato del conjunto de datos en el
control asp:Repeater, para lo cual no nos queda más remedio que editar el código HTML
de la página ASP.NET. Mediante el uso de plantillas definimos el aspecto visual de nuestro
conjunto de datos:
http://csharp.ikor.org/
160 Desarrollo Profesional de Aplicaciones con C#
Obviamente, la tabla mostrada en la parte derecha de la figura anterior es mucho más vistosa
que la sobria tabla que se visualiza con las plantillas que hemos definido para el control
asp:Repeater. Para construir una tabla de este tipo, lo único que tenemos que hacer es
definir la plantilla opcional <AlternatingItemTemplate>. Si incluimos el código
HTML necesario para utilizar distintos colores en <ItemTemplate> y
<AlternatingItemTemplate> podemos conseguir que las filas de la tabla se muestren
con colores alternos, como en la figura, de forma que se mejore la legibilidad de los datos y el
atractivo visual de la tabla. Como su propio nombre sugiere, la plantilla
<AlternatingItemTemplate> determina la visualización de elementos alternos del
conjunto de datos. Cuando no se define, <ItemTemplate> se utiliza para todos los
elementos del conjunto de datos. Cuando se define, las filas pares e impares se mostrarán de
forma distinta en función de lo que hayamos especificado en las plantillas
<ItemTemplate> y <AlternatingItemTemplate>.
otros controles, que se pueden emplear para visualizar e incluso modificar conjuntos de datos.
En concreto, nos referimos a los controles System.Web.UI.WebControls.DataList
y System.Web.UI.WebControls.DataGrid que usaremos en los dos próximos
apartados.
El control asp:DataList
El control asp:DataList es similar a asp:Repeater, si bien incluye por defecto una
tabla alrededor de los datos. Además, se puede diseñar su aspecto de forma visual desde el
diseñador de formularios del Visual Studio .NET. Desde el diseñador de formularios,
podemos seleccionar el control asp:DataList y pinchar con el botón derecho del ratón
para acceder a las opciones de "Editar plantilla" incluidas en su menú contextual. Desde ahí
podemos definir una amplia gama de propiedades del control de forma visual.
El control asp:DataList, además de las cinco plantillas que ya mencionamos al hablar del
control asp:Repeater, incluye dos plantillas adicionales: SelectedItemTemplate y
EditItemTemplate. Estas plantillas se usan, respectivamente, para resaltar el elemento
seleccionado de la lista y permitir la edición de los valores correspondientes a uno de los
elementos del conjunto de datos.
En este caso, cada vez que se muestre un contacto, aparecerá una etiqueta asp:Label con
su nombre acompañada de un enlace asp:HyperLink en el que figurará su dirección de
correo electrónico. Mediante la opción (DataBindings) que aparece en el editor de
http://csharp.ikor.org/
162 Desarrollo Profesional de Aplicaciones con C#
propiedades de los controles, podemos enlazar el nombre y la dirección de correo con los
controles correspondientes, tal como se muestra en la figura:
"mailto:"+DataBinder.Eval(Container.DataItem,"Email")