ASP.NET - Repeater-Kontroll
- Vorherige Seite WebForms XML-Datei
- Nächste Seite WebForms DataList
Der Repeater-Kontroll wird verwendet, um wiederholte Projektlisten anzuzeigen, die im Kontrollbereich eingeschränkt sind.
Beispiel
DataSet an Repeater-Kontroll binden
Der Repeater-Kontroll wird verwendet, um wiederholte Projektlisten anzuzeigen, die im Kontrollbereich eingeschränkt sind. Der Repeater-Kontroll kann an eine Datenbanktabelle, eine XML-Datei oder andere Projektlisten gebunden werden. Hier zeigen wir, wie man eine XML-Datei an einen Repeater-Kontroll bindet.
Wir verwenden in diesem Beispiel die folgende XML-Datei ("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>
Bitte überprüfen Sie diese XML-Datei:cdcatalog.xml
Zunächst müssen Sie den Namensraum "System.Data" importieren. Wir benötigen diesen Namensraum, um mit dem DataSet-Objekt zu arbeiten. Fügen Sie im oberen Teil der .aspx-Seite die folgende Anweisung hinzu:
<%@ Import Namespace="System.Data" %>
Nun erstellen wir einen DataSet für diese XML-Datei und laden diese XML-Datei beim ersten Laden der Seite in den DataSet:
<script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) end if end sub
Dann erstellen wir in der .aspx-Seite einen Repeater-Controller. Der Inhalt des <HeaderTemplate> wird nur einmal in der Ausgabe angezeigt, der Inhalt des <ItemTemplate> wird entsprechend der "record" im DataSet wiederholt, und der Inhalt des <FooterTemplate> wird nur einmal in der Ausgabe angezeigt:
<html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> ... </HeaderTemplate> <ItemTemplate> ... </ItemTemplate> <FooterTemplate> ... </FooterTemplate> </asp:Repeater> </form> </body> </html>
Dann fügen wir Skripte hinzu, die DataSet erstellen können, und binden diesen mycdcatalog DataSet an den Repeater-Controller. Wir füllen diesen Repeater-Controller ebenfalls mit HTML-Tags und binden die Datenprojekte an die Zellen im <ItemTemplate>-Teil über die Methode <%#Container.DataItem("fieldname")%>:
<%@ 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:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table border="1" width="100%"> <tr> <th>Titel</th> <th>Künstler</th> <th>Land</th> <th>Firma</th> <th>Preis</th> <th>Jahr</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem("country")%></td> <td><%#Container.DataItem("company")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> </body> </html>
Verwenden Sie <AlternatingItemTemplate>
Sie können ein <AlternatingItemTemplate>-Element nach dem <ItemTemplate>-Element hinzufügen, um das Aussehen von abwechselnden Zeilen zu beschreiben. Ein Beispiel zeigt, dass jede Zeile eines Tables in einem grauen Hintergrund angezeigt wird:
<%@ 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:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table border="1" width="100%"> <tr> <th>Titel</th> <th>Künstler</th> <th>Land</th> <th>Firma</th> <th>Preis</th> <th>Jahr</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem("country")%></td> <td><%#Container.DataItem("company")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </ItemTemplate> <AlternatingItemTemplate> <tr bgcolor="#e8e8e8"> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem("country")%></td> <td><%#Container.DataItem("company")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </AlternatingItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> </body> </html>
Verwenden Sie <SeparatorTemplate>
Der <SeparatorTemplate>-Element kann verwendet werden, um Trennzeichen zwischen jedem Datensatz zu beschreiben. Ein Beispiel, das eine horizontale Linie zwischen jeder Zeile eines Tables einfügt:
<%@ 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:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table border="0" width="100%"> <tr> <th>Titel</th> <th>Künstler</th> <th>Land</th> <th>Firma</th> <th>Preis</th> <th>Jahr</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem("country")%></td> <td><%#Container.DataItem("company")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </ItemTemplate> <SeparatorTemplate> <tr> <td colspan="6"><hr /></td> </tr> </SeparatorTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> </body> </html>
- Vorherige Seite WebForms XML-Datei
- Nächste Seite WebForms DataList