Çalışma Anında Menu Oluşturma
Bu makalede çalışma anında Menu oluşturmayı göreceğiz. Default.aspx sayfasına 1 adet Button ve Panel ekleyin. Access veritabanındaki tablodan verileri çekip, MenuItemlerde ve Altındaki
ChieldItemlerde gösterip, bunlara link vereceğiz. Aşağıdaki Şekilleri inceleyin.
Şekil 1
Şekil 2
Button a yazacağınız kod;
protected void Button1_Click(object sender, EventArgs e)
{
Menu menu;
System.Data.OleDb.OleDbConnection baglan = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + Server.MapPath("~//veri.mdb") + ";");
System.Data.OleDb.OleDbDataAdapter adp = new System.Data.OleDb.OleDbDataAdapter();
adp.SelectCommand = new System.Data.OleDb.OleDbCommand("Select * From tvler", baglan);
System.Data.OleDb.OleDbCommandBuilder CB = new System.Data.OleDb.OleDbCommandBuilder(adp);
baglan.Open();
System.Data.DataSet ds = new System.Data.DataSet();
adp.Fill(ds);
baglan.Close();
menu = new Menu();
//Aşağıdaki döngü ile çalışma anında
//menü itemleri oluşturulup, veritabandaki
//alandaki satırlardan veriler alınıyor.
//alandaki bilgi kadar Menü item oluşturuluyor.
foreach (DataRow dbRow in ds.Tables[0].Rows)
{
MenuItem menuitems = new MenuItem();
MenuItem menuitems2 = new MenuItem();
//menüdeki itemleri çalışma anında oluşturuyor.
//tv alanından veri çekiliyor
menuitems.Text = dbRow["tv"].ToString();
menuitems.Value = dbRow["tv"].ToString();
menuitems2.Text = dbRow["aciklama"].ToString();
menuitems2.Value = dbRow["aciklama"].ToString();
//menu deki itemlere link veriliyor.
//url ye tıklanınca linke gidecek
menuitems.NavigateUrl = dbRow["adres"].ToString();
// Alt menüye link veriliyor
menuitems2.NavigateUrl = dbRow["adres"].ToString();
//Alt menü oluşturuluyor.
menuitems.ChildItems.Add(menuitems2);
menu.Items.Add(menuitems);
Panel1.Controls.Add(menu);
}
menu.BackColor = System.Drawing.Color.SkyBlue;
menu.Width = 200;
}
//Bir sonraki makalede buluşmak üzere. Bahadır