Formularios web ASP.NET: control Lista de datos
Esta sección presenta El control DataList de ASP.NET es más flexible que el control Repetidor. El control DataList presenta datos en forma de tabla.El control DataList, similar al control Repetidor, se utiliza para mostrar una lista repetida de elementos vinculados al control. Sin embargo, el control DataList agrega una tabla a los elementos de datos de forma predeterminada.
Vincular DataSet al control DataList
El control DataList, similar al control Repetidor, se utiliza para mostrar una lista repetida de elementos vinculados al control. Sin embargo, el control DataList agrega una tabla a los elementos de datos de forma predeterminada. El control DataList se puede vincular a una tabla de base de datos, un archivo XML u otra lista de elementos. Aquí, demostraremos cómo vincular un archivo XML a un control DataList.
En nuestro ejemplo, usaremos el siguiente archivo XML ("cdcatalog.xml"):
<?xml version="1.0" encoding="ISO-8859-1"?><catalog><cd><title>Empire Burlesque</title><artist>Bob Dylan</artist><country>Estados Unidos</country ><company>Columbia</company><price>10.90</price><year>1985</year></cd><cd><title>Esconde tu corazón</title><artist>Bonnie Tyler</artist><country>Reino Unido</country><company>CBS Records</company><price>9,90</price><year>1988</year></cd><cd><title>Grandes éxitos </title><artista>Muñeca Parton</artist><country>USA</country><company>RCA</company><price>9.90</price><year>1982</year></cd><cd><title>Aún tengo el blues</title><artist>Gary Moore</artist><country>Reino Unido</country><company>Virgen registros</company><price>10.20</price><year>1990</year></cd><cd><title>Eros</title><artist>Eros Ramazzotti</artist><country>EU< /país><company>BMG</company><price>9,90</price><year>1997</year></cd></catalog>Ver este archivo XML: cdcatalog.xml
Primero, importe el espacio de nombres "System.Data". Necesitamos este espacio de nombres para trabajar con objetos DataSet. Incluya la siguiente directiva en la parte superior de su página .aspx:
<%@ Importar espacio de nombres="System.Data" %>A continuación, cree un conjunto de datos para el archivo XML y cargue el archivo XML en el conjunto de datos cuando se cargue la página por primera vez:
<script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))end ifend subLuego creamos un control DataList en la página .aspx. El contenido del elemento <HeaderTemplate> se representa primero y aparece solo una vez en la salida, mientras que el contenido del elemento <ItemTemplate> se repite para cada "registro" en el DataSet. Finalmente, el contenido del elemento <FooterTemplate> es. Aparece solo una vez en la salida:
<html><body><form runat="servidor"><asp:DataList id="cdcatalog" runat="servidor"><HeaderTemplate>...</HeaderTemplate><ItemTemplate>...</ItemTemplate>< FooterTemplate>...</FooterTemplate></asp:DataList></form></body></html>Luego agregamos el script para crear el DataSet y vinculamos el mycdcatalog DataSet al control DataList. Luego, el control DataList se completa con un <HeaderTemplate> que contiene el encabezado, un <ItemTemplate> que contiene los elementos de datos que se mostrarán y un <FooterTemplate> que contiene el texto. Tenga en cuenta que puede establecer la propiedad gridlines de DataList en "ambas" para mostrar los bordes de la tabla:
Ejemplo
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog. DataBind()finalizar sub</script><html><body><form runat="server"><asp:DataList id="cdcatalog"gridlines="both" runat="server"><HeaderTemplate>Mi catálogo de CD</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title" )%>" de<%#Container.DataItem("artista")%> -$<%#Container.DataItem("precio")%></ItemTemplate><FooterTemplate>Copyright Hege Refsnes</FooterTemplate></asp:DataList></form></body></html>Usar estilos
También puede agregar estilos al control DataList para que la salida sea más elegante:
Ejemplo
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog. DataBind()finalizar sub</script><html><body><form runat="servidor"><asp:DataList id="cdcatalog"runat="server"cellpadding="2"cellspacing="2"borderstyle="inset"backcolor="#e8e8e8"headerstyle-font-name="Verdana"headerstyle-font-size="12pt"headerstyle -horizonte lalign="center"headerstyle-font-bold="true"itemstyle-backcolor="#778899"itemstyle-forecolor="#ffffff"footerstyle-font-size="9pt"footerstyle-font-italic="true">< Plantilla de encabezado>Mi Catálogo de CD</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title")%>" de<%#Container.DataItem("artista")%> -$<%#Container.DataItem("precio" )%></ItemTemplate><FooterTemplate>Copyright Hege Referencias</FooterTemplate></asp:DataList></form></body></html>Utilice <Plantilla de elemento alternativo>
Puede agregar un elemento <AlternatingItemTemplate> después de un elemento <ItemTemplate> para describir la apariencia de filas alternas en la salida. Puede agregar estilos a los datos en el área <AlternatingItemTemplate> dentro del control DataList:
Ejemplo
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog. DataBind()finalizar sub</script><html><body><form runat="servidor"><asp:DataList id="cdcatalog"runat="server"cellpadding="2"cellspacing="2"borderstyle="inset"backcolor="#e8e8e8"headerstyle-font-name="Verdana"headerstyle-font-size="12pt"headerstyle -horizontalalign="centro"headerstyle-font-bold="Tr ue"itemstyle-backcolor="#778899"itemstyle-forecolor="#ffffff"alternatingitemstyle-backcolor="#e8e8e8"alternatingitemstyle-forecolor="#000000"footerstyle-font-size="9pt"footerstyle-font-italic=" Verdadero"><HeaderTemplate>Mi Catálogo de CD</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title")%>" de<%#Container.DataItem("artista")%> -$<%#Container.DataItem("precio" )%></ItemTemplate><AlternatingItemTemplate>"<%#Container.DataItem("title")%>" de<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price")%></AlternatingItemTemplate><FooterTemplate>© Hege Refsnes</FooterTemplate></asp:DataList>< /formulario></body></html>