Formulários Web ASP.NET - controle DataList
Esta seção apresenta O controle DataList do ASP.NET é mais flexível que o controle Repeater. O controle DataList apresenta dados na forma de uma tabela.O controle DataList, semelhante ao controle Repeater, é usado para exibir uma lista repetida de itens vinculados ao controle. No entanto, o controle DataList adiciona uma tabela aos itens de dados por padrão.
Vincular DataSet ao controle DataList
O controle DataList, semelhante ao controle Repeater, é usado para exibir uma lista repetida de itens vinculados ao controle. No entanto, o controle DataList adiciona uma tabela aos itens de dados por padrão. O controle DataList pode ser vinculado a uma tabela de banco de dados, arquivo XML ou outra lista de itens. Aqui, demonstraremos como vincular um arquivo XML a um controle DataList.
Em nosso exemplo, usaremos o seguinte arquivo XML (“cdcatalog.xml”):
<?xml version="1.0" encoding="ISO-8859-1"?><catalog><cd><title>Império Burlesco</title><artist>Bob Dylan</artist><country>EUA</country ><company>Columbia</company><price>10,90</price><year>1985</year></cd><cd><title>Esconda seu coração</title><artist>Bonnie Tyler</artist><country>Reino Unido</country><company>CBS Records</company><price>9,90</price><year>1988</year></cd><cd><title>Maiores sucessos </title><artist>Dolly Parton</artist><country>EUA</country><company>RCA</company><price>9,90</price><year>1982</year></cd><cd><title>Ainda tenho o blues</title><artist>Gary Moore</artist><country>Reino Unido</country><company>Virgin registros</company><price>10.20</price><year>1990</year></cd><cd><title>Eros</title><artist>Eros Ramazzotti</artist><country>UE< /país><empresa>BMG</empresa><preço>9,90</preço><ano>1997</ano></cd></catalog>Visualize este arquivo XML: cdcatalog.xml
Primeiro, importe o namespace “System.Data”. Precisamos deste namespace para trabalhar com objetos DataSet. Inclua a seguinte diretiva no topo da sua página .aspx:
<%@Importar Namespace="System.Data" %>Em seguida, crie um DataSet para o arquivo XML e carregue o arquivo XML no DataSet quando a página for carregada pela primeira vez:
<script runat="server">sub Page_Loadif Não Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))end ifend subEm seguida, criamos um controle DataList na página .aspx. O conteúdo do elemento <HeaderTemplate> é renderizado primeiro e aparece apenas uma vez na saída, enquanto o conteúdo do elemento <ItemTemplate> é repetido para cada "registro" no DataSet. Finalmente, o conteúdo do elemento <FooterTemplate> é repetido. Aparece apenas uma vez na saída:
<html><body><form runat="server"><asp:DataList id="cdcatalog" runat="server"><HeaderTemplate>...</HeaderTemplate><ItemTemplate>...</ItemTemplate>< FooterTemplate>...</FooterTemplate></asp:DataList></form></body></html>Em seguida, adicionamos o script para criar o DataSet e vincular o mycdcatalog DataSet ao controle DataList. O controle DataList é então preenchido com um <HeaderTemplate> que contém o cabeçalho, um <ItemTemplate> que contém os itens de dados a serem exibidos e um <FooterTemplate> que contém o texto. Observe que você pode definir a propriedade gridlines do DataList como "both" para exibir as bordas da tabela:
Exemplo
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=Novo DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog. DataBind()end ifend sub</script><html><body><form runat="server"><asp:DataList id="cdcatalog"gridlines="both" runat="server"><HeaderTemplate>Meu catálogo de CDs</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title" )%>" de<%#Container.DataItem("artista")%> -$<%#Container.DataItem("price")%></ItemTemplate><FooterTemplate>Copyright Hege Refsnes</FooterTemplate></asp:DataList></form></body></html>Usar estilos
Você também pode adicionar estilos ao controle DataList para tornar a saída mais sofisticada:
Exemplo
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=Novo DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog. DataBind()end ifend 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">< HeaderTemplate>Meu Catálogo de CDs</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title")%>" of<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price" )%></ItemTemplate><FooterTemplate>Copyright Hege Refsnes</FooterTemplate></asp:DataList></form></body></html>Use <AlternatingItemTemplate>
Você pode adicionar um elemento <AlternatingItemTemplate> após um elemento <ItemTemplate> para descrever a aparência de linhas alternadas na saída. Você pode adicionar estilos aos dados na área <AlternatingItemTemplate> dentro do controle DataList:
Exemplo
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=Novo DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog. DataBind()end ifend 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="center"headerstyle-font-bold="Tr ue"itemstyle-backcolor="#778899"itemstyle-forecolor="#ffffff"alternatingitemstyle-backcolor="#e8e8e8"alternatingitemstyle-forecolor="#000000"footerstyle-font-size="9pt"footerstyle-font-italic=" Verdadeiro"><HeaderTemplate>Meu Catálogo de CDs</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title")%>" of<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price" )%></ItemTemplate><AlternatingItemTemplate>"<%#Container.DataItem("title")%>" de<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price")%></AlternatingItemTemplate><FooterTemplate>© Hege Refsnes</FooterTemplate></asp:DataList>< /formulário></corpo></html>