İc ice repeater kullanımı ve ic ice kategorileme mantığı aşağıda ado.net komutlarıyla deyimleriyle ele alınmıştır. Sonsuz alt kategori mantığını anlamak icin database tablolarımıza bir goz atalım.
İc ice sonsuz kategorilemeyi kullanabilmek icin tablomuzu aşağıdaki gibi tasarlamalıyız. Tabloda KategoriID ve UstKategoriID sutunları bulunmaktadır bu sutunlardan “KategoriID” primary key “UstKategoriID” satırı da alt kategorileri temsil etmektedir.
Olay şudur:
Satırlardan UstKategoriID ’si lisanssız olanlar parent kategoridir.
UstKategoriID ’sinde değer olanlar, değerin temsil ettiği parent kategoriye bağlıdırlar. Hatta bir alt kategoriye başka bir alt kategorinin id numarasını verirsek ic ice iki alt kat oluşturmuş oluruz.
Aşağıdaki tabloda bilgisayar, telefon, ev elektroniği ve ofis ve sarf malzemeler ust kategori, desktop pc id numarası 1 olan bilgisayarın, cep telefonu id numarası 2 olan telefon kategorisinin altında yer almaktadır.

Kategorilerimizi hiyerarşik bir şekilde gostermek icin ic ice repeater kullanılabilir. Aşağıda ic ice repeater kullandık. Dış taki repeater (rptKategoriler) sadece ana kategorileri listeleyecek, icteki (rptAltKategori) ise hangi kategorideyse onun altındakileri listeleyecektir.
Kod:
Yazılan OnItemDataBound eventi rptKategoriler id sine sahip nesnenin her veritabanından bir veri cektikten sonra OnItemDataBound eventinin calışmasını sağlar. Bu alana altkategorileri listeleyeceğimiz kodları yazmalıyız.
Dıştaki repeaterin icine dolduruyoruz:
Kod:
SqlConnection conn = new SqlConnection("server=.;database=databaseadi;uid=s a;pwd=123"); SqlCommand cmd = new SqlCommand("select * from Kategoriler where UstKategoriID IS lisanssız", conn); conn.Open(); rptKategoriler.DataSource = cmd.ExecuteReader(); rptKategoriler.DataBind(); conn.Close();
İc kategorileri listeleyecek OnItemDataBound olayı:
Kod:
protected void rptKategoriler_ItemDataBound(object sender, RepeaterItemEventArgs e)
Orneklerdeki kodları kendinize gore kopyalayıp ic ice repeater kullanımı calıştırabilirsiniz.