mehmetduran.com - Paylaşmak Güzeldir...
Asp.net ile Dinamik Menü Hazırlama
Asp.net ile sitelerde sık sık kullanılan ve dinamik olan bir menü yapacağız. Öncelikle veritabanımızı aşağıdaki gibi hazırlayalım.
asp.net ile dinamik menü

Daha sonra kodlarımıza başlayalım. Öncelikle kullanacağımız değişkenleri tanımlıyoruz. Daha sonra menüyü hazırlayacağımız menu metodu yazıyoruz. Öncelikle ilk tablomuzdan ana menüleri seçiyoruz ve ve ilk for döngüsüyle bu değerleri sanal olarak oluşturduğumuz ana_menu ye atıyoruz. Daha sonra diğer for döngüsüyle de ikinci tablomuzdan açılır menüleri kontrol edip onları da ana_menudeki değerlere atamak için oluşturduğumuz alt_menuye atıyoruz. Ve sonuçta menümüzü hazır hale getirdik.

   OleDbConnection cn;
    OleDbDataAdapter da, da2;
    DataTable dt, dt2;
    MenuItem ana_menu, alt_menu;
    string alt_menu_id;
       protected void Page_Load(object sender, EventArgs e) {
        cn = new OleDbConnection("Provider=microsoft.jet.oledb.4.0; data source=" + Server.MapPath("~/menu.mdb"));
        menu();}
        public void menu() {
        da = new OleDbDataAdapter("select * from ana_menu order by sira asc", cn);
        dt = new DataTable();
        da.Fill(dt);
        for (int i = 0; i < dt.Rows.Count; i++){
            alt_menu_id=dt.Rows[i]["id"].ToString();
            ana_menu = new MenuItem();
            ana_menu.Text = "&nbsp;&nbsp;" + dt.Rows[i]["ana_menu"].ToString();
            ana_menu.NavigateUrl = dt.Rows[i]["link"].ToString();
            Menu1.Items.Add(ana_menu);
            da2 = new OleDbDataAdapter("select * from alt_menu where ana_menu_id=@id order by sira asc", cn);
            da2.SelectCommand.Parameters.AddWithValue("@id", alt_menu_id);
            dt2 = new DataTable();
            da2.Fill(dt2);
            for (int j = 0; j < dt2.Rows.Count; j++){
                alt_menu = new MenuItem();
                alt_menu.Text = dt2.Rows[j]["alt_menu"].ToString();
                alt_menu.NavigateUrl = "default.aspx?alt_id=" + dt2.Rows[j]["id"].ToString();
                ana_menu.ChildItems.Add(alt_menu);} }}

Yaptığımız menünün görüntüsü aşağıdaki gibidir. Tabi disaynı sizin zevkinize ve bilginize kalmış birşey.

dinamik menü

Kaynak dosyalara buradan ulaşabilirisiniz.
Ayrıca menünün nasıl yönetileceğini de basit bir şekilde anlattım. Dosyalarda mevcuttur.
Mehmet Duran 05 Mayıs Pazartesi 2008 9 42660 4,0
Bookmark and Share
Bu Yazıyı Değerlendirin.
Konuyla İlgili Olabilecek Diğer Yazılar Asp.net ile Dizine ve Dizindeki Dosyalara Ulaşma C#'ta Recursive ve Dinamik Programlama ile Fibonacci Algoritması BlogEngine.NET Türkçe Oluyor Javascript ile Asp.net'te Onaylama(Confirm) Kontrolü Asal Sayı Programı
Yorumlar
Yorum Yaz
RSS Yorum Takibi
guzel hazırlanmış 28 Kasım Cuma 2008 16:31 #1
emegine saglık mehmetduran.com, guzel hazırlanmısa benzemekte kardes... DURMUS...
Erman Güloğlu 30 Ocak Cuma 2009 23:16 #2
Aslında tek tabloda yapılmış örneğini de alternatif olarak eklerseniz, yeni başlayan arkadaşlara fikir vermek için faydası olur kanaatindeyim. Ellerinize sağlık
Mehmet Duran 30 Ocak Cuma 2009 23:23 #3
Merhaba. Bu örneği ilk çalışma dönemlerimde merak ile hazırlamıştım. Ancak sonradan gördüm ki pek kullanışlı bir yöntem değil. Bunun yerine repeater gibi bir data kontrolü ve şekillendirmek için de kendi javascript kodlarımızı kullanmak daha mantıklı.
Samet EYÜBOĞLU 06 Mart Cuma 2009 17:17 #4
ellerine sağlık hocam..
Zeynep 24 Mayıs Pazar 2009 18:29 #5
Gerçekten Harika ve Son Derece Faydalı Bir Site Olmuş.... Benim Gibi Acemilerin Böyle Bir Siteye İhtiyacı Vardı Teşekkürler... Bu Gibi Sitelerin Artması Dileğiyle....
murat 15 Haziran Pazartesi 2009 01:06 #6
Güzel bir yazı teşekkür ederim . Başarılar.
Gökhan ERTAŞ 27 Temmuz Pazartesi 2009 21:24 #7
Elinize sağlık efendim...
Ali 14 Şubat Pazar 2010 23:35 #8
dersler menusunun altında csharp ın altında da menu oluşturmak istersek bir for döngüsü daha kullanmak gerekir. bu sekilde alt menuler oluşursa devamlı for acmak kodu zorlaştırır. bunun daha pratik bi yntemi var mı
Mehmet Duran 14 Şubat Pazar 2010 23:41 #9
Bu yazdığım kod bloğu bayağı eski bir kod bloğu. Şu anda bu kontrolleri kullanmak yerine repeater kontrolü ile veya direk olarak döngüler ile daha esnek menüler hazırlanabilir. Oluşturulmak istenen yapı ne kadar karmaşık olursa kod da o kadar karmaşık olur. Döngüler ise bu tür işlemler için kaçınılmazdır. Hazır data kontrolleri de kullanabiliriz ama onların da arka planında döngüler var.
İsim :
Site :
Yorum :

Buradan bu yazıya ait yorumları RSS olarak takip edebilirsiniz.

Bu servis ile yazılara eklenen yorumları RSS ile takip ederek konu ile ilgili başkaları tarafından yapılan yorumları veya konuyla ilgili sorduğunuz sorulara verilen cevapları görebilirsiniz.
Gençken bilgi ağacını dikmesek, yaşlandığımız zaman gölgesine sığınacak bir yerimiz olmayacaktır.
Bölümler
Yazılar
Arşiv
Arama
Linkler
Site İçi Arama
Son Zamanlarda Ne Yapıyorum ?
İstatistikler - Araçlar - Reklam
İstatistikler
Sayaç
Mehmet Duran | mehmetduran.com | Copyright © 2009