Asp.net Repeater Kullanımı (Örnek Detaylı Kullanım ile Asp.net Repeater)
Asp.net Repeater Kullanımı (Örnek Detaylı Kullanım ile Asp.net Repeater)

Makalemizin konusu asp.net repeater kullanımı. Asp.net veri gösterim araçlarından olan repeater kontrolünün kullanımı oldukça yaygındır. Esnek yapısı, ihtiyaca göre geliştirilebilen görünümü ile veri gösterim ihtiyacını karşılayan bir kontroldür.

Konumuzun devamında asp.net repeater kontrolünün şablon (template) yapısı, olayları (events) ve detaylı bir kullanım örneğine yer vereceğiz. Öncelikle repeater kontrolünü tanıyalım.

Asp.net Repeater Şablonları (Template)

Repeater kontrolünün verileri organize ve anlamlı bir şekilde göstermek üzere tasarlanmış 5 adet şablonu mevcuttur. Şablon isimlerine ve açıklamalarına aşağıdan ulaşabilirsiniz.

ItemTemplate: Repeater için olmazsa olmaz şablondur. Gösterilecek veriler bu şablon içerisine yerleştirilir. Diğer şablonların kullanımı zorunlu değilken ItemTemplate tek zorunlu şablondur.

AlternatingItemTemplate: Verilerin gösterimi sırasında alternatif vurgulama özellikleri kullanılacağı durumda bu şablon kullanılır. Kullanımı ItemTemplate ile aynıdır, genelde CSS sınıfı ile görünüm zenginliği kazandırılır.

HeaderTemplate: Verilerin başlığının yer aldığı ve 1 kez gösterilen kısımdır. Örneğin verileriniz tablo biçiminde gösterilecekse HeaderTemplate içerisinde başlıklar yer alabilir.

FooterTemplate: Repeater’ ın en altında veri listeleme işlemi tamamlandıktan sonra yer alacak öğeler için kullanılır.

SeparatorTemplate : Gösterilen verilerin birbirinden ayrılması ve okunaklı bir şekilde gösterimi için kullanılır. CSS özellikleri yaygın olarak kullanıldığı için bu şablonu kullanmaya gerek kalmıyor.

Asp.net Repeater Kontrolünün Olayları (Events)

Repeater kontrolünün pek çok olayı (events) vardır ancak en çok ihtiyaç duyulan ve kullanılan 2 olay aşağıdaki gibidir.

OnItemCommand: Repeater içinde yer alan bir butona tıklanması gibi olayları karşılar. Bu sayede repeater ile gösterdiğimiz bir bilgiyi düzenleme yada silme butonuna tıkladığımızda sadece o veri üzerinde işlemler yapmamıza olanak sağlar.

OnItemDataBound: Repeater kontrolüne veri kaynağının bağlanması olayını karşılar. Bu aşamada gösterilecek veri içeriğini değiştirme, verileri farklı kontroller ile gösterme gibi senaryolarda kullanılır.

Asp.net Repeater Kullanımı

Aşağıda asp.net repeater kullanımını bir tablo biçimi ile örneklendirdik. HeaderTemplate içinde HTML biçiminde tablo ve başlıkları yazdık. ItemTemplate ve AlternatingItemTemplate içinde verilerin göstermini CSS ile biçim farklılığı oluşturacak şekilde gösterdik. FooterTemplate içerisinde de HTML tablo etiketini kapattık.

<asp:Repeater ID="rptOrnek" runat="server" OnItemCommand="rptOrnek_ItemCommand">
<HeaderTemplate>
    <table class="table table-striped table-hover ">
        <thead>
	   <tr class="warning">
	      <th>Numarası</th>
	      <th>Adı Soyadı</th>
	      <th>Sınıfı / Şubesi</th>
	      <th>Doğum Tarihi</th>
	      <th>Sil</th>
	   </tr>
        </thead>
        <tbody>
</HeaderTemplate>
<ItemTemplate>
    <tr class="active">
        <td><%# Eval("Numarasi") %></td>
        <td><%# Eval("Adi") %> <%# Eval("Soyadi") %></td>
        <td><%# Eval("Sinifi") %> / <%# Eval("Subesi") %></td>
        <td><%# Eval("DogumTarihi") %></td>
        <td><asp:LinkButton ID="lnkSil" runat="server" CssClass="btn btn-xs btn-danger" CommandArgument='<%# Eval("Id") %>' CommandName="sil" Text="Sil"></asp:LinkButton></td>
    </tr>
</ItemTemplate>
<AlternatingItemTemplate>
    <tr class="info">
        <td><%# Eval("Numarasi") %></td>
        <td><%# Eval("Adi") %> <%# Eval("Soyadi") %></td>
        <td><%# Eval("Sinifi") %> / <%# Eval("Subesi") %></td>
        <td><%# Eval("DogumTarihi") %></td>
        <td><asp:LinkButton ID="lnkSil" runat="server" CssClass="btn btn-xs btn-danger" CommandArgument='<%# Eval("Id") %>' CommandName="sil" Text="Sil"></asp:LinkButton></td>
    </tr>
</AlternatingItemTemplate>
<FooterTemplate>
        </tbody>
    </table> 
</FooterTemplate>
</asp:Repeater>

Aşağıda c# tarafında veriyi çektiğimiz ve repeater a bağladığımız kodlar mevcut. Burada ayrıca repeater içerisine yerleştirdiğimiz “sil” butonunu çalıştıracak olan OnItemCommand olayının kullanımını da görebilirsiniz.

protected void Page_Load(object sender, EventArgs e)
{
	SqlConnection baglanti = new SqlConnection("Data Source=.;Initial Catalog=RepeaterDB;Integrated Security=True");
	SqlCommand komut = new SqlCommand("SELECT * FROM Ogrenciler",baglanti);
	baglanti.Open();
	SqlDataReader dr = komut.ExecuteReader();
	if (dr != null)
	{
	   rptOrnek.DataSource = dr;
	   rptOrnek.DataBind();
	}
	dr.Close();
	baglanti.Close();
	baglanti.Dispose();
}

protected void rptOrnek_ItemCommand(object source, RepeaterCommandEventArgs e)
{
	if(e.CommandName.ToString() == "sil")
	{
	   //silme işlemleri burada yapılır 
	}
	else if(e.CommandName.ToString() == "duzenle")
	{
	   //düzenleme işlemleri burada yapılır
	}
}

Repeater içerisine koyduğumuz butona CommandArgument özelliği ile bu butonun hangi satırda işlem yaptığı verisini, CommandName özelliği ile de bu butonun yapacağı işlem türünü belirttik. CS dosyasında da CommandName özelliğine göre bu işlemleri gerçekleştirdik. Böylece repeater içerisinde buton kullanımına da yer vermiş olduk.

Basit bir anlatımla repeater kullanımı bu şekilde. Konu ile ilgili soru veya sorunlarınızı aşağıdaki yorumlar bölümünden iletebilirsiniz.

1 Yorum

  1. Abim ben şimdi okulda bize bir tane performans verdiler ben ana sayfama “Repeater” koymak istiyorum ama olmuyor sizden ricam bana yardımcı olur musunuz …

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz