Yazar girişi yapmak için tıklayın
ozgurclub banner

CSharp ile Sonsuz Alt Kategori Sistemi

Lafı fazla uzatmadan açıklamak istiyorum eğer bir menü yapıyor ve sonsuz alt kategoriye ihtiyacınız varsa..

Özyinelemeli recursion yapıları kullanmanız gerekir..

bu fonskiyonlara recursive veya özyinelemeli fonksiyonlar denir...

sonsuz kategori sistemi için

evet efendim anlatacağımız şey ağaç yapısı sonsuz alt kategori sistemi için

aşağıdaki veritabanı yapsını tanımladım...

ust id ler "0" ana kategorilar id ler alt kategorileri gösteriyor ve bu böyle gidiyor....

id    UstId    menuad
30    0    ANA SAYFA
32    0    ILETISIM
56    0    GENEL BILGILER
57    30    Basvuru Evraklari
58    56    Aranan Sartlar
59    56    Geçmis Sinav Sorulari
60    57    Sürücü Belge Siniflari
61    57    Sinav Kurallari
62    56    Sinav Tarihleri
.... devam ediyor...

 

int  int  varchar

ben bu örneği yazarken access te denedim

şimdi c# koduna gelirsek eğer...

sayfamın codebehind indaki kodlar

       string connstr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + HttpContext.Current.Server.MapPath("App_Data/db.mdb");  
        protected void Page_Load(object sender, EventArgs e)
        {
            Menu(0, 0);
        }
        protected int Menu(int parentid, int level)
        {
            string sql2 = "SELECT * FROM menu WHERE UstId=" + Convert.ToString(parentid);
            OleDbConnection bag = new OleDbConnection(connstr);
            OleDbCommand cmd = new OleDbCommand(sql2, bag);
            bag.Open();
            OleDbDataReader olerd = cmd.ExecuteReader();

            while (olerd.Read())
            {
                if (parentid.ToString() == olerd[1].ToString())
                {
                        deneme.InnerHtml += "<ul>";
                }
                deneme.InnerHtml += "<li>" + olerd[0].ToString() + " " + olerd[1].ToString() + " " + olerd[2].ToString()+"</li>";
                deneme.InnerHtml += "<br>";

                Menu(Convert.ToInt32(olerd[0].ToString()), level + 1);
                if (parentid.ToString() == olerd[1].ToString())
                {
                    deneme.InnerHtml += "</ul>";
                }
            }
            olerd.Close();
            return 0;
        }

 

ASPX SAYFASI TARAFINDA DİV in innerHTML özelliğine yazdırıyorum menümü

   <form id="form1" runat="server">
   <div runat="server" id="deneme">
    
   </div>
   </form>

İyi günlerde iyi amaçlar için kullanmanız dileğiyle

Kategori : C#.Net
Etiketler : Alt Kategori ,
Tarih : 19.07.2010
Ekleyen : ozgur
Tasarım ve Kodlama && SonDefterim.com Sürüm 1.1