Repeater içinde repeater kullanımı




Merhabalar Arkadaşlar,

Bu yazımızda repeater içinde repeater kullanımına bakacağız.

Örneğimizde kategoriler ve o kategorinin içinde ürünleri gösterelim.
Dış repeater kategorileri çekecek (rptKategoriler), İç repeater (rptUrunler) ise (alacağı kategoriID ile) o kategorideki ürünleri listeleyecek.

  1. Page_Load da Tüm kategorilerimizi rptKategoriler içine aktarıyoruz.
  2. rptKategoriler içindeki her bir kategorinin kategoriID sini yakalamak için ItemDataBound Event ini kullanımıyoruz.
  3. kategoriID yi DataBinder ile bulup değişken içine aktarıyoruz.
  4. rptUrunler repeater ı iç repeater olduğundan görülmeyecektir. ismi ile arayıp buluyoruz.
  5. rp repeater ı içine aktarıyoruz.
  6. o kategoriID ile ilgili ürünleri repeater a DataBind ediyoruz.
Herkese İyi çalışmalar dilerim.


 protected void Page_Load(object sender, EventArgs e)
 {
   baglan bag=new baglan();
   rptKategoriler.DataSource = bag.tablo_getir("tumKategoriler");
   rptKategoriler.DataBind();
 }

protected void rptKategoriler_ItemDataBound(object sender, RepeaterItemEventArgs e)
 {
   baglan bag=new baglan();
   int kategoriID = Convert.ToInt32(DataBinder.Eval(e.Item.DataItem, "kategoriID").ToString());
   object[,] icerik = new object[,] {{"@kategoriID",kategoriID} };
   Repeater rp = (Repeater)e.Item.FindControl("rptUrunler");
   rp.DataSource = bag.tablo_getir(icerik,"urunleriGetirKategorili");
   rp.DataBind();
 }

create proc tumKategoriler
as 
select * from kategoriler

create proc urunleriGetirKategorili
@kategoriID int
as
select * from urunler where kategoriID=@kategoriID