ASP.NET - DataList-kontroll
- Föregående sida WebForms Repeater
- Nästa sida WebForms Databasanslutning
DataList-kontrollen, liknande Repeater-kontrollen, används för att visa upprepade listor av objekt begränsade till kontrollen. Dock lägger DataList-kontrollen automatiskt till en tabell på dataobjekten.
Exempel
Binda DataSet till DataList-kontroll
DataList-kontrollen, liknande Repeater-kontrollen, används för att visa upprepade listor av objekt begränsade till kontrollen. Dock lägger DataList-kontrollen automatiskt till en tabell på dataobjekten. DataList-kontrollen kan binds till databastabeller, XML-filer eller andra objektslistor. Här kommer vi att visa hur man binder en XML-fil till en DataList-kontroll.
Vi kommer att använda följande XML-fil ("cdcatalog.xml") i vårt exempel:
<?xml version="1.0" encoding="ISO-8859-1"?> <catalog> <cd> <title>Empire Burlesque</title> <artist>Bob Dylan</artist> <land>USA</land> <företag>Columbia</företag> <pris>10.90</pris> <år>1985</år> </cd> <cd> <titel>Hide your heart</titel> <artist>Bonnie Tyler</artist> <land>UK</land> <företag>CBS Records</företag> <pris>9.90</pris> <år>1988</år> </cd> <cd> <titel>Greatest Hits</titel> <artist>Dolly Parton</artist> <land>USA</land> <företag>RCA</företag> <pris>9.90</pris> <år>1982</år> </cd> <cd> <titel>Still got the blues</titel> <artist>Gary Moore</artist> <land>UK</land> <företag>Virgin records</företag> <pris>10.20</pris> <år>1990</år> </cd> <cd> <titel>Eros</titel> <artist>Eros Ramazzotti</artist> <land>EU</land> <företag>BMG</företag> <pris>9.90</pris> <år>1997</år> </cd> </catalog>
Se till XML-filen här:cdcatalog.xml
Först, importera "System.Data"-namnrymden. Vi behöver denna namnrymd för att arbeta med DataSet-objekt. Inkludera följande instruktion i toppen av .aspx-sidan:
<%@ Import Namespace="System.Data" %>
Nästa steg är att skapa en DataSet för denna XML-fil och ladda in XML-filen i DataSet vid sidans första laddning:
<script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) end if end sub
Därefter skapar vi en DataList-kontroll i .aspx-sidan. Innehållet i <HeaderTemplate>-elementet visas endast en gång i utdata, medan innehållet i <ItemTemplate>-elementet återkommer i enlighet med "record" i DataSet, slutligen visas innehållet i <FooterTemplate> endast en gång i utdata:
<html> <body> <form runat="server"> <asp:DataList id="cdcatalog" runat="server"> <HeaderTemplate> ... </HeaderTemplate> <ItemTemplate> ... </ItemTemplate> <FooterTemplate> ... </FooterTemplate> </asp:DataList> </form> </body> </html>
Därefter lägger vi till skript som skapar en DataSet och binder denna mycdcatalog DataSet till DataList-kontrollen. Vi använder också dessa element för att fylla DataList-kontrollen: <HeaderTemplate> som innehåller rubriken, <ItemTemplate> som innehåller de data som ska visas, och <FooterTemplate> som innehåller text.Observera att DataList:s gridlines-attribut är satt till "both" för att visa tabelldragar:
<%@ 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> Min CD Katalog </HeaderTemplate> <ItemTemplate> "<%#Container.DataItem("title")%>" av <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </ItemTemplate> <FooterTemplate> Copyright codew3c.com </FooterTemplate> </asp:DataList> </form> </body> </html>
Använd stil
Du kan också lägga till stil till DataList-kontrollen för att göra den mer stilfull:
<%@ 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> Min CD Katalog </HeaderTemplate> <ItemTemplate> "<%#Container.DataItem("title")%>" av <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </ItemTemplate> <FooterTemplate> Copyright codew3c.com </FooterTemplate> </asp:DataList> </form> </body> </html>
Använd <AlternatingItemTemplate>
Du kan lägga till ett <AlternatingItemTemplate>-element efter <ItemTemplate>-elementet för att beskriva utseendet på varje ojämna rad. Du kan styla data i <AlternatingItemTemplate>-delen inom DataList-kontrollen:
<%@ 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> Min CD Katalog </HeaderTemplate> <ItemTemplate> "<%#Container.DataItem("title")%>" av <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </ItemTemplate> <AlternatingItemTemplate> "<%#Container.DataItem("title")%>" av <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </AlternatingItemTemplate> <FooterTemplate> © codew3c.com </FooterTemplate> </asp:DataList> </form> </body> </html>
- Föregående sida WebForms Repeater
- Nästa sida WebForms Databasanslutning