Repeater(Tekrarlayıcı) Kontrolü

Eyl 06, 2013

ASP.NET denetim özelliklerinden biri olan Repeater, belirli bir düzen içerisinde saklanan verileri, istenen veriye kadar tekrar edip, belirli kalıplar içerisinde görüntelemeye yarayan bir veri bağlama(data binding) aracıdır. Ayrıca Repeater, diğer web denetimlerine nazaran daha esnek bir kullanım sunmaktadır. 

Repeater denetimi, kullanılmak istenilen projenin aspx uzantılı dosyasında <div> etiketleri arasına <asp:Repeater> şeklinde tanımlanır.
Repeater denetimi, sağladığı şablonlar aracılığıyla kullanılır. Denetimin içeriğini tanımlamak, oluşturmak için kullanılan bu şablonlar 5 adettir:

  • ItemTemplate(Madde Şablonu): Veri kaynağından alınan verilerin her birinin nasıl görüntüleneceğinin belirlendiği şablondur.
  • AlternatingTemplate(Alternatif Şablon): Art arda alınan veri satırlarının karışık göründüğü durumlarda bu satırları birbirinden ayırt edebilmek için kullanılır.
  • HeaderTemplate(Başlık Şablonu): Tekrarlanacak olan veriden önce, sadece bir defa görüntülenmesi istenilen veri için kullanılan şablondur.
  • FooterTemplate(Altnot Şablonu): Sadece bir defa görüntülenecek ve tekrarlanacak olan veriden sonra olması istenen verinin gösterimi için kullanılır.
  • SeperatorTemplate(Ayırıcı Şablon): Veritabanından gelen her bir satırı ayırmak için kullanılır. Örneğin, satırlar birbirinden bir çizgi ile ayrılabilir.

Uygulama:

Aşağıda, örnek bir veritabanı üzerinden çekilmiş olan verilerin, repeater yardımıyla basit bir halde nasıl görüntüleneceğini anlatan bir uygulama bulunmaktadır. Öncelikle, aspx uzantılı sayfada, yardımcı şablonları ile beraber denetim oluşturulur.

Başlık şablonun içerisinde yazılanların sayfanın sadece başında, madde şablonunda yazılanların sürekli tekrar eden olan veriler olduğuna dikkat edilmelidir.

<div>
    <table border="2" style="border-collapse:collapse" cellpadding="10">
        <asp:Repeater ID="ornRepeater" runat="server">
            <HeaderTemplate>
                <h3>REPEATER UYGULAMA</h3><br />
                <tr style="background-color:Silver">
                    <td>
                        <strong>İsim</strong>
                    </td>
                    <td>
                        <strong>Bölüm</strong>
                    </td>
                </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td>
                        <%#Eval("AD") %>
                    </td>
                    <td>
                        <%#Eval("BOLUM") %>
                    </td>
                </tr>
            </ItemTemplate>
       </asp:Repeater>
    </table>
</div>

Arka kısımda çalışacak, veri tabanına gerekli bağlantıyı yapacak olan kod ise aşağıdaki gibidir:

        
        Database db = DatabaseFactory.CreateDatabase("baglanti");
        DataSet ds = db.ExecuteDataSet(CommandType.Text, 
                                                            "SELECT AD, BOLUM FROM BIM_CALISANLARI");
        ornRepeater.DataSource = ds;
        ornRepeater.DataBind();
 

Uygulama çalıştırıldığında, tablo içindeki veriler bitene kadar tekrar eden repeater denetimi ekrana görüntüyü aşağıdaki şekilde yansıtır.