ASP.NET - Repeater kontrolü
- Önceki Sayfa WebForms XML Dosyası
- Sonraki Sayfa WebForms DataList
Repeater kontrolü, kontrol içinde sınırlı olan tekrarlanan projeler listesini göstermek için kullanılır.
Örnek
DataSet'ı Repeater kontrolüne bağlama
Repeater kontrolü, tekrarlanan projeler listesini göstermek için kullanılır, bu projeler kontrol içinde sınırlıdır. Repeater kontrolü, veritabanı tablosu, XML dosyası veya diğer projeler listesine bağlanabilir. Burada, bir XML dosyasını Repeater kontrolüne nasıl bağlayacağımızı göstereceğiz.
Örneklerde aşağıdaki XML dosyasını (cdcatalog.xml) kullanacağız:
<?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>
Lütfen bu XML dosyasını (cdcatalog.xml) kontrol edin:cdcatalog.xml
Öncelikle, "System.Data" adlı adlandırma alanını içe aktarın. Bu adlandırma alanını DataSet nesnesi ile birlikte çalışmak için gereklidir. .aspx sayfasının üstüne aşağıdaki komutu ekleyin:
<%@ Import Namespace="System.Data" %>
Sonra, bu XML dosyası için bir DataSet oluşturur ve bu XML dosyasını sayfa ilk yüklendiğinde DataSet'e yükler:
<script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) end if end sub
Sonra .aspx sayfasında bir Repeater kontrolü oluştururuz. <HeaderTemplate> öğesi içeriği yalnızca bir kez çıktıda görünür, <ItemTemplate> öğesi içeriği DataSet'teki "record" için tekrarlanır, en sonunda <FooterTemplate> içeriği yalnızca bir kez çıktıda görünür:
<html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> ... </HeaderTemplate> <ItemTemplate> ... </ItemTemplate> <FooterTemplate> ... </FooterTemplate> </asp:Repeater> </form> </body> </html>
Sonra DataSet oluşturucu script'ini ekler ve bu mycdcatalog DataSet'ini Repeater kontrolüne bağlarız. Ayrıca, bu Repeater kontrolünü doldurmak için HTML etiketleri kullanır ve veri öğelerini <ItemTemplate> bölümündeki hücrelere <%#Container.DataItem("fieldname")%> yöntemi ile bağlarız:
<%@ 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>
Kullan <AlternatingItemTemplate>
Sizi, <ItemTemplate> öğesi ardından <AlternatingItemTemplate> öğesi ekleyerek, değişken satırların görünümünü tanımlayabilirsiniz. Aşağıdaki örnekte, tablo her iki satırda bir açık gri arka plana sahip olacaktır:
<%@ 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>
Kullan <SeparatorTemplate>
<SeparatorTemplate> öğesi, her kayıt arasındaki ayırıcıyı tanımlamak için kullanılabilir. Aşağıdaki örnekte, her tablo satırı arasında bir yatay çizgi eklenmiştir:
<%@ 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>
- Önceki Sayfa WebForms XML Dosyası
- Sonraki Sayfa WebForms DataList