Controlul datalist este, cum ar fi controlul Repeater, folosit pentru a afișa o listă repetată de elemente care sunt legate la control. Cu toate acestea, controlul datalist adaugă un tabel în jurul elementele de date în mod implicit.
Legați un set de date la un control datalist
Controlul datalist este, cum ar fi controlul Repeater, folosit pentru a afișa o listă repetată de elemente care sunt legate la control. Cu toate acestea, controlul datalist adaugă un tabel în jurul elementele de date în mod implicit. Controlul datalist poate fi legat la un tabel de bază de date, un fișier XML sau o altă listă de articole. Aici vom arăta cum de a lega un fișier XML pentru un control datalist.
Vom folosi următorul fișier XML în exemplele noastre ("cdcatalog.xml") :
<?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>
Uitați-vă la fișierul XML: cdcatalog.xml
În primul rând, importați "System.Data" spațiul de nume. Avem nevoie de acest spațiu de nume pentru a lucra cu obiecte set de date. Includeți următoarea directivă în partea de sus a unei pagini aspx:
<%@ Import Namespace="System.Data" %>
Apoi, creați un set de date pentru fișierul XML și încărcați fișierul XML în DataSet atunci când pagina este prima încărcare:
<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath("cdcatalog.xml"))
end if
end sub
Apoi, vom crea un datalist într-o pagină de aspx. Conținutul <HeaderTemplate> elementul sunt redate mai întâi și doar o singură dată în cadrul producției, atunci conținutul <ItemTemplate> Elementul se repetă pentru fiecare "record" în setul de date, și ultimul, conținutul <FooterTemplate> elementul sunt pronunțată o dată în cadrul producției:
<html>
<body>
<form runat="server">
<asp:DataList id="cdcatalog" runat="server">
<HeaderTemplate>
...
</HeaderTemplate>
<ItemTemplate>
...
</ItemTemplate>
<FooterTemplate>
...
</FooterTemplate>
</asp:DataList>
</form>
</body>
</html>
Apoi vom adăuga script-ul care creează și se leagă DataSet DataSet mycdcatalog la controlul datalist. De asemenea , Umplem controlul datalist cu <HeaderTemplate> care conține antetul tabelului, un <ItemTemplate> care conține elementele de date pentru a afișa, și un <FooterTemplate> , care conține un text. Rețineți că gridlines atributul datalist este setat la "both" pentru a afișa chenare de tabel:
Exemplu
<%@ 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>
My CD Catalog
</HeaderTemplate>
<ItemTemplate>
"<%#Container.DataItem("title")%>" of
<%#Container.DataItem("artist")%> -
$<%#Container.DataItem("price")%>
</ItemTemplate>
<FooterTemplate>
Copyright Hege Refsnes
</FooterTemplate>
</asp:DataList>
</form>
</body>
</html>
Arată exemplu » Utilizarea Stiluri
Puteți adăuga, de asemenea stiluri pentru controlul datalist pentru a face producția mai fantezie:
Exemplu
<%@ 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>
My CD Catalog
</HeaderTemplate>
<ItemTemplate>
"<%#Container.DataItem("title")%>" of
<%#Container.DataItem("artist")%> -
$<%#Container.DataItem("price")%>
</ItemTemplate>
<FooterTemplate>
Copyright Hege Refsnes
</FooterTemplate>
</asp:DataList>
</form>
</body>
</html>
Arată exemplu » Cu ajutorul <AlternatingItemTemplate>
Puteți adăuga un <AlternatingItemTemplate> Element după <ItemTemplate> elementul pentru a descrie apariția de rânduri de alternativ de ieșire. Este posibil stilul datele din <AlternatingItemTemplate> secțiunea în cadrul controlului datalist:
Exemplu
<%@ 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>
My CD Catalog
</HeaderTemplate>
<ItemTemplate>
"<%#Container.DataItem("title")%>" of
<%#Container.DataItem("artist")%> -
$<%#Container.DataItem("price")%>
</ItemTemplate>
<AlternatingItemTemplate>
"<%#Container.DataItem("title")%>" of
<%#Container.DataItem("artist")%> -
$<%#Container.DataItem("price")%>
</AlternatingItemTemplate>
<FooterTemplate>
© Hege Refsnes
</FooterTemplate>
</asp:DataList>
</form>
</body>
</html>
Arată exemplu »