Pengulang Borang Web
Kawalan Repeater digunakan untuk memaparkan senarai berulang item yang terikat pada kawalan.
Ikat Set Data kepada kawalan Pengulang
Kawalan Repeater digunakan untuk memaparkan senarai item berulang yang terikat pada kawalan. Kawalan pengulang boleh terikat pada jadual pangkalan data, fail XML atau senarai item lain. Di sini kami akan menunjukkan cara untuk mengikat fail XML ke kawalan Repeater.
Dalam contoh kami, kami akan menggunakan fail XML berikut ("cdcatalog.xml"):
<katalog>
<cd>
<title>Empire Burlesque</title>
<artis>Bob Dylan</artis>
<country>AS</country>
<syarikat>Columbia</syarikat>
<harga>10.90</harga>
<tahun>1985</tahun>
</cd>
<cd>
<title>Sembunyikan hati anda</title>
<artis>Bonnie Tyler</artis>
<country>UK</country>
<syarikat>Rekod CBS</syarikat>
<harga>9.90</harga>
<tahun>1988</tahun>
</cd>
<cd>
<title>Greatest Hits</title>
<artis>Dolly Parton</artis>
<country>AS</country>
<syarikat>RCA</syarikat>
<harga>9.90</harga>
<tahun>1982</tahun>
</cd>
<cd>
<title>Masih mendapat blues</title>
<artis>Gary Moore</artis>
<country>UK</country>
<syarikat>Rekod dara</syarikat>
<harga>10.20</harga>
<tahun>1990</tahun>
</cd>
<cd>
<title>Eros</title>
<artis>Eros Ramazzotti</artis>
<country>EU</country>
<syarikat>BMG</syarikat>
<harga>9.90</harga>
<tahun>1997</tahun>
</cd>
</katalog>
Lihat fail XML ini: cdcatalog.xml
Mula-mula, import ruang nama "System.Data". Kami memerlukan ruang nama ini untuk berfungsi dengan objek DataSet. Sertakan arahan berikut di bahagian atas halaman .aspx:
Seterusnya, untuk XML Fail mencipta DataSet dan memuatkan fail XML ini ke dalam DataSet apabila halaman pertama kali dimuatkan:
sub Page_Load
if Not Page. IsPostBack kemudian
, dim mycdcatalog=Set Data Baharu
, mycdcatalog.ReadXml(MapPath("cdcatalog.xml"))
end if
end sub
Kemudian kami mencipta kawalan Repeater dalam halaman .aspx. Kandungan dalam elemen <HeaderTemplate> dipaparkan dahulu dan muncul sekali sahaja dalam output, manakala kandungan dalam <ItemTemplate> diulang untuk setiap "rekod" dalam Set Data, dan akhirnya, kandungan dalam < Elemen FooterTemplate> Kandungan hanya muncul sekali dalam output:
<body>
<form runat="server">
< asp:Repeater id="cdcatalog" runat="server">
<HeaderTemplate>
...
</HeaderTemplate>
;ItemTemplate>
...
</ItemTemplate>
<FooterTemplate>
...
</FooterTemplate>
<🎜 asp:Repeater>
</form>
</body>
</html>
<%@ 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> <!DOCTYPE html> <html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table border="1" width="100%"> <tr> <th>Title</th> <th>Artist</th> <th>Company</th> <th>Price</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%> </td> <td><%#Container.DataItem("artist")%> </td> <td><%#Container.DataItem("company")%> </td> <td><%#Container.DataItem("price")%> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> </html> </body>
Jalankan Instance»Klik butang "Run Instance" untuk melihat contoh dalam talian
Gunakan< AlternatingItemTemplate>Anda boleh menambah elemen <AlternatingItemTemplate> selepas elemen <ItemTemplate> Dalam contoh berikut, setiap baris jadual lain dipaparkan dengan latar belakang kelabu muda:
<%@ 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> <!DOCTYPE html> <html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table border="1" width="100%"> <tr> <th>Title</th> <th>Artist</th> <th>Company</th> <th>Price</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%> </td> <td><%#Container.DataItem("artist")%> </td> <td><%#Container.DataItem("company")%> </td> <td><%#Container.DataItem("price")%> </td> </tr> </ItemTemplate> <AlternatingItemTemplate> <tr bgcolor="#e8e8e8"> <td><%#Container.DataItem("title")%> </td> <td><%#Container.DataItem("artist")%> </td> <td><%#Container.DataItem("company")%> </td> <td><%#Container.DataItem("price")%> </td> </tr> </AlternatingItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> </html> </body>
Running Instance»Klik butang "Jalankan Instance" untuk melihat contoh dalam talian
Gunakan <SeparatorTemplate>
<SeparatorTemplate> untuk menerangkan pemisah antara setiap rekod. Dalam contoh berikut, garis mendatar disisipkan di antara setiap baris jadual:
Instance
<%@ 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> <!DOCTYPE html> <html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table border="0" width="100%"> <tr> <th align="left">Title</th> <th align="left">Artist</th> <th align="left">Company</th> <th align="left">Price</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%> </td> <td><%#Container.DataItem("artist")%> </td> <td><%#Container.DataItem("company")%> </td> <td><%#Container.DataItem("price")%> </td> </tr> </ItemTemplate> <SeparatorTemplate> <tr> <td colspan="6"><hr></td> </tr> </SeparatorTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> </html> </body>
Running Instance»
Klik butang "Jalankan Instance" untuk melihat contoh dalam talian