ASP.NET - Kawalan DataList
- 上一页 Repeater WebForms
- 下一页 WebForms 数据库连接
Kawalan DataList, seperti kawalan Repeater, digunakan untuk menunjukkan senarai pengulangan objek yang terhadap kawalan ini. Walau bagaimanapun, kawalan DataList secara lalai akan menambahkan jadual ke objek data.
Contoh
Bandingkan DataSet kepada Kawalan DataList
Kawalan DataList, seperti kawalan Repeater, digunakan untuk menunjukkan senarai pengulangan objek yang terhadap kawalan ini. Walau bagaimanapun, kawalan DataList secara lalai akan menambahkan jadual ke objek data. Kawalan DataList boleh disambungkan kepada talian database, fail XML atau senarai objek lain. Di sini, kami akan menunjukkan bagaimana membinarkan fail XML kepada kawalan DataList.
Kami akan menggunakan fail XML berikut ("cdcatalog.xml") dalam contoh ini:
<?xml version="1.0" encoding="ISO-8859-1"?> <catalog> <cd> <title>Burlesque Empire</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>
Lihat berkas XML ini:cdcatalog.xml
Pertama, impor ruang nama "System.Data" . Kita memerlukan ruang nama ini untuk bekerja bersama dengan objek DataSet. Sertakan perintah berikut di atas halaman .aspx:
<%@ Import Namespace="System.Data" %>
Selanjutnya, buat sebuah DataSet untuk berkas XML ini dan masukkan berkas XML ini ke DataSet saat halaman pertama kali dimuat:
<script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) end if end sub
Dalam hal ini, kita membuat sebuah kontrol DataList di halaman .aspx. Konten <HeaderTemplate> hanya muncul sekali dalam output, sementara konten <ItemTemplate> muncul berulang-ulang menurut "record" dalam DataSet, akhirnya, konten <FooterTemplate> hanya muncul sekali dalam output:
<html> <body> <form runat="server"> <asp:DataList id="cdcatalog" runat="server"> <HeaderTemplate> ... </HeaderTemplate> <ItemTemplate> ... </ItemTemplate> <FooterTemplate> ... </FooterTemplate> </asp:DataList> </form> </body> </html>
Kemudian, kami menambahkan skrip untuk mencipta DataSet dan mengikat DataSet mycdcatalog kepada kawalan DataList. Kita juga menggunakan elemen ini untuk mengisi kawalan DataList: <HeaderTemplate> yang mengandungi tajuk, <ItemTemplate> yang mengandungi item untuk dipaparkan, dan <FooterTemplate> yang mengandungi teks. Perhatikan bahawa atribut gridlines DataList diatur kepada "both" untuk memaparkan garisan tangga:
<%@ 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> Kerjasama codew3c.com </FooterTemplate> </asp:DataList> </form> </body> </html>
Gunakan gaya
Anda juga boleh menambahkan gaya kepada kawalan DataList untuk menjadikannya lebih mewah:
<%@ 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> Kerjasama codew3c.com </FooterTemplate> </asp:DataList> </form> </body> </html>
Gunakan <AlternatingItemTemplate>
Boleh anda menambahkan elemen <AlternatingItemTemplate> selepas <ItemTemplate> untuk menyifatkan penampilan baris alternatif. Anda boleh melakukannya untuk bagian <AlternatingItemTemplate> di dalam kawalan DataList untuk memproses gaya:
<%@ 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> © codew3c.com </FooterTemplate> </asp:DataList> </form> </body> </html>
- 上一页 Repeater WebForms
- 下一页 WebForms 数据库连接