ASP.NET - Ελέγχτης Repeater
- Προηγούμενη Σελίδα Φάκελος XML WebForms
- Επόμενη Σελίδα DataList WebForms
Ο ελέγχτης Repeater χρησιμοποιείται για την προβολή λίστας επαναλαμβανόμενων στοιχείων, τα οποία περιορίζονται στο ελέγχτη.
Παράδειγμα
Σύνδεση του DataSet με τον ελέγχτη Repeater
Ο ελέγχτης Repeater χρησιμοποιείται για την προβολή λίστας επαναλαμβανόμενων στοιχείων, τα οποία περιορίζονται στο ελέγχτη. Ο ελέγχτης Repeater μπορεί να συνδεθεί με πίνακα βάσης δεδομένων, αρχείο XML ή άλλες λίστας στοιχείων. Εδώ, θα δούμε πώς να συνδέσουμε ένα αρχείο XML σε έναν ελέγχτη Repeater.
Θα χρησιμοποιήσουμε το παρακάτω αρχείο XML ("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>
Παρακαλώ ελέγξτε το αρχείο XML αυτό:cdcatalog.xml
Πρώτα, εισάγετε το όνομα χώρο "System.Data".
<%@ Import Namespace="System.Data" %>
Στη συνέχεια, δημιουργούμε ένα DataSet για αυτόν τον αρχείο XML και το φορτώνουμε στο 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
Στη συνέχεια, δημιουργούμε έναν έλεγχο Repeater στην αρχική σελίδα .aspx. Το περιεχόμενο του <HeaderTemplate> εμφανίζεται μόνο μια φορά στην έξοδο, το περιεχόμενο του <ItemTemplate> εμφανίζεται ανάλογα με την εγγραφή του DataSet, και το περιεχόμενο του <FooterTemplate> εμφανίζεται μόνο μια φορά στην έξοδο:
<html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> ... </HeaderTemplate> <ItemTemplate> ... </ItemTemplate> <FooterTemplate> ... </FooterTemplate> </asp:Repeater> </form> </body> </html>
Στη συνέχεια, προσθέτουμε το σενάριο που δημιουργεί το DataSet και συνδέει το mycdcatalog DataSet με τον έλεγχο Repeater. Χρησιμοποιούμε επίσης τα HTML ετικέτες για να συμπληρώσουμε τον έλεγχο Repeater και να συνδέσουμε τα στοιχεία δεδομένων με την ενότητα <ItemTemplate> χρησιμοποιώντας το <%#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>Title</th> <th>Artist</th> <th>Country</th> <th>Company</th> <th>Price</th> <th>Year</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>
Χρήση του <AlternatingItemTemplate>
Μπορείτε να προσθέσετε το στοιχείο <AlternatingItemTemplate> μετά το <ItemTemplate> για να περιγράψετε την εμφάνιση των εναλλακτικών γραμμών. Στο παρακάτω παράδειγμα, κάθε παράγραφος της τάβλης εμφανίζεται με υπόβαθρο άχρωμο:
<%@ 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>Title</th> <th>Artist</th> <th>Country</th> <th>Company</th> <th>Price</th> <th>Year</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>
Χρήση του <SeparatorTemplate>
Το στοιχείο <SeparatorTemplate> μπορεί να χρησιμοποιηθεί για να περιγράψει τον διαχωριστή μεταξύ κάθε εγγραφής. Στο παρακάτω παράδειγμα, μια οριζόντια γραμμή εισάγεται μεταξύ κάθε γραμμής της τάβλης:
<%@ 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>Title</th> <th>Artist</th> <th>Country</th> <th>Company</th> <th>Price</th> <th>Year</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>
- Προηγούμενη Σελίδα Φάκελος XML WebForms
- Επόμενη Σελίδα DataList WebForms