ASP.NET - Controllo DataList
- Pagina Precedente Repeater WebForms
- Pagina Successiva Connessione Database WebForms
Il controllo DataList, simile al controllo Repeater, viene utilizzato per visualizzare elenchi ripetuti di elementi limitati al controllo. Tuttavia, il controllo DataList aggiunge automaticamente una tabella agli elementi dei dati.
Esempio
Associare DataSet al controllo DataList
Il controllo DataList, simile al controllo Repeater, viene utilizzato per visualizzare elenchi ripetuti di elementi limitati al controllo. Tuttavia, il controllo DataList aggiunge automaticamente una tabella agli elementi dei dati. Il controllo DataList può essere associato a tabelle di database, file XML o altre liste di elementi. In questo esempio, mostreremo come associare un file XML a un controllo DataList.
Utilizzeremo il seguente file XML ("cdcatalog.xml") nell'esempio:
<?xml version="1.0" encoding="ISO-8859-1"?> <catalog> <cd> <title>Empire Burlesque</title> <artist>Bob Dylan</artist> <country>USA</country> <company>Columbia</company> <price>10.90</price> <year>1985</year> </cd> <cd> <title>Hide your heart</title> <artist>Bonnie Tyler</artist> <country>UK</country> <company>CBS Records</company> <price>9.90</price> <year>1988</year> </cd> <cd> <title>Greatest Hits</title> <artist>Dolly Parton</artist> <country>USA</country> <company>RCA</company> <price>9.90</price> <year>1982</year> </cd> <cd> <title>Still got the blues</title> <artist>Gary Moore</artist> <country>UK</country> <company>Virgin records</company> <price>10.20</price> <year>1990</year> </cd> <cd> <title>Eros</title> <artist>Eros Ramazzotti</artist> <country>EU</country> <company>BMG</company> <price>9.90</price> <year>1997</year> </cd> </catalog>
Vedere questo file XML:cdcatalog.xml
Prima di tutto, importa lo spazio dei nomi "System.Data". Abbiamo bisogno di questo spazio dei nomi per lavorare con l'oggetto DataSet. Include questa istruzione nella parte superiore della pagina .aspx:
<%@ Import Namespace="System.Data" %>
Prossimamente, crea un DataSet per questo file XML e carica questo file XML nel DataSet durante il caricamento della pagina:
<script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) end if end sub
Poi creiamo un controllo DataList nella pagina .aspx. Il contenuto dell'elemento <HeaderTemplate> appare una sola volta nell'output, mentre il contenuto dell'elemento <ItemTemplate> corrisponde alla ripetizione del "record" nel DataSet, infine, il contenuto di <FooterTemplate> appare una sola volta nell'output:
<html> <body> <form runat="server"> <asp:DataList id="cdcatalog" runat="server"> <HeaderTemplate> ... </HeaderTemplate> <ItemTemplate> ... </ItemTemplate> <FooterTemplate> ... </FooterTemplate> </asp:DataList> </form> </body> </html>
Poi aggiungiamo lo script per creare il DataSet e associamo il DataSet mycdcatalog al controllo DataList. Usiamo questi elementi per riempire il controllo DataList: <HeaderTemplate> che contiene l'intestazione, <ItemTemplate> che contiene gli elementi da visualizzare e <FooterTemplate> che contiene il testo. Nota che l'attributo gridlines del DataList è impostato su "both" per visualizzare i bordi della tabella:
<%@ Import Namespace="System.Data" %> <script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) cdcatalog.DataSource=mycdcatalog cdcatalog.DataBind() end if end sub </script> <html> <body> <form runat="server"> <asp:DataList id="cdcatalog" gridlines="both" runat="server"> <HeaderTemplate> Il mio Catalogo CD </HeaderTemplate> <ItemTemplate> "<%#Container.DataItem("title")%>" di <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </ItemTemplate> <FooterTemplate> Copyright codew3c.com </FooterTemplate> </asp:DataList> </form> </body> </html>
Usa stili
Puoi anche aggiungere stili al controllo DataList per renderlo più elegante:
<%@ Import Namespace="System.Data" %> <script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) cdcatalog.DataSource=mycdcatalog cdcatalog.DataBind() end if end sub </script> <html> <body> <form runat="server"> <asp:DataList id="cdcatalog" runat="server" cellpadding="2" cellspacing="2" borderstyle="inset" backcolor="#e8e8e8" width="100%" headerstyle-font-name="Verdana" headerstyle-font-size="12pt" headerstyle-horizontalalign="center" headerstyle-font-bold="true" itemstyle-backcolor="#778899" itemstyle-forecolor="#ffffff" footerstyle-font-size="9pt" footerstyle-font-italic="true" <HeaderTemplate> Il mio Catalogo CD </HeaderTemplate> <ItemTemplate> "<%#Container.DataItem("title")%>" di <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </ItemTemplate> <FooterTemplate> Copyright codew3c.com </FooterTemplate> </asp:DataList> </form> </body> </html>
Usa <AlternatingItemTemplate>
Puoi aggiungere l'elemento <AlternatingItemTemplate> dopo l'elemento <ItemTemplate> per descrivere l'aspetto delle righe alternate. Puoi applicare stili al contenuto della parte <AlternatingItemTemplate> all'interno del controllo DataList:
<%@ Import Namespace="System.Data" %> <script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) cdcatalog.DataSource=mycdcatalog cdcatalog.DataBind() end if end sub </script> <html> <body> <form runat="server"> <asp:DataList id="cdcatalog" runat="server" cellpadding="2" cellspacing="2" borderstyle="inset" backcolor="#e8e8e8" width="100%" headerstyle-font-name="Verdana" headerstyle-font-size="12pt" headerstyle-horizontalalign="center" headerstyle-font-bold="True" itemstyle-backcolor="#778899" itemstyle-forecolor="#ffffff" alternatingitemstyle-backcolor="#e8e8e8" alternatingitemstyle-forecolor="#000000" footerstyle-font-size="9pt" footerstyle-font-italic="True"> <HeaderTemplate> Il mio Catalogo CD </HeaderTemplate> <ItemTemplate> "<%#Container.DataItem("title")%>" di <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </ItemTemplate> <AlternatingItemTemplate> "<%#Container.DataItem("title")%>" di <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </AlternatingItemTemplate> <FooterTemplate> © codew3c.com </FooterTemplate> </asp:DataList> </form> </body> </html>
- Pagina Precedente Repeater WebForms
- Pagina Successiva Connessione Database WebForms