Asp.Net de İç İçe Repeater Kullanımı
Genel de menu yaparken yada bir
listeleme yapacağımız zaman kullanacağımız bir özelliktir. Bende daha
öncelerden brojelerimde kullandım ve faydası oluyor.
Üstelik kullanımı da çok basit. İsterseniz lafı uznatmadan koldalrımızı vereyim ben.
Veritabanımız;SayfaIdSayfaAd_trroot
Veritabanımız bu kadar arkadaşlar ister mssql ister access kullanın fark etmez.
İlk olarak default.aspx sayfamızı tasarlmaya başlayalım.
<asp:Repeater ID="Repeater1" runat="server" onitemdatabound="Repeater1_ItemDataBound"> <ItemTemplate> <%#Eval("SayfaAd_tr") %> <br /> <asp:Repeater ID="Repeater2" runat="server"> <ItemTemplate> <%#Eval("SayfaAd_tr")%><br /> </ItemTemplate> </asp:Repeater> </ItemTemplate> </asp:Repeater>
Default.aspx sayfamızda ki kodlarımız bu kadar arkadaşlar.
Şimdi ise Default.aspx.cs tarafında yzacağımız kodları görelim.
protected void Page_Load(object sender, EventArgs e){ Repeater1.DataSource = datalistDoldur.DataTableAl("Select * from Sayfalar Where root=0"); Repeater1.DataBind(); } protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { Repeater rp = (Repeater)e.Item.FindControl("Repeater2");
rp.DataSource = datalistDoldur.DataTableAl("select * from
Sayfalar where root=" + Convert.ToInt32(DataBinder.Eval(e.Item.DataItem,
"SayfaId").ToString())); rp.DataBind(); }
Öncelikle ilk Repater'mızı load
olayında dolduruyoruz. Ben kendim daha önceden yazdığım claslarımı
kullandım sizin yapmanız gereken eğer class ınız yoksa object orianted
bilginiz de yoksa önce connection sağlayıp sonra command la sorgu
oluşturup bağlantıyı açarak datatable yardımıyla repeater imizi
doldurabilirsiniz. yanlış hatılamıyorsam daha önceki yazılarımda
bulunmakta.
Daha sonra ana repaterimizin ItemDataBound olayına üst kısımda bulunan diğer kodlarımızı yazıyorsunuz.
İşlem
bu kadar basit arkadaşlar. İsterseniz oluşturduğunuz repeater lara
style verebilir görünümü daha güzel hale getirebilirsiniz.
Görüşmek üzere
Osman KURT
Yazılım Geliştrici Ve Grafiker
Hiç yorum yok :
Yorum Gönder