Yazılımcının Günlüğü | YazilimGunlugu.Com
Arama
Makale Kategorileri
Üye Girişi
Şuanki online üyeler()
Aktif üye bulunmamaktadır.


ASP.net de Mssql Üzerinden Menü Kontrolunu doldurma

Yazar: Yusuf Akgül

Kategori: ASP.NET

Eklenme Tarihi: 31.08.2007 17:32:15

.Net teknolojisinde gelen Sitemizde navigasyon amaçlı kullandığımız navigasyon grubunda yer alan menu kontrolunu kullanarak sitemiz için gerekli olan dinamik bir menü kontrolu yapacağız.

ASP.net de gelen toolbardaki navigasyon sekmesinde yer alan menu kontrolu ile sitemiz üzerinde navigasyon işlemlerini sağlayabiliriz. Bu compenenti dinamik ve static olarak kullanma şansımız vardır. Statik kullanımında her hangi bir veri kaynağından beslenmeden kendimiz properties’i içerisinden ilgili yerleri ayarlayarak sabit bir menu kontrolu oluşturabiliriz. Ancak biz bu aşamada bunla uğraşmayacaz menu kontrolunun dinamik yapılandırması üzerinde duracaz.

*Dinamik yapılandırma menu kontrolünün bir veri kaynağından beslenmesi anlamına gelir. Bu veri kaynağı XML,SITEMAP,TEXT yada bir veritabanı olabilir.biz bu makalemizde MSSQL üzerinden yüklenen hiyerarşik bir veritabanından menu kontrolümüzü oluşturacağız.

1-Öncelikle sayfamıza bir adet menu kontrolu ekleyelim.


Eklediğimiz kontrole ait orientation değerini vertical (dikey) olarak değiştiriyoruz ve properties üzerinden items’lara ait olan görsel değerleri istediğimiz gibi ayarlayabiliriz. Yalnız menu kontrolune herhangi bir item yada subitem eklemiyoruz zira bunu dinamik olarak çalışma zamanında zaten oluşturacaz.

2- MSSQL veritabanını açıyoruz ve iki adet veri tabanı oluşturuyoruz.Tablolarımız kategori ve altkategori olarak iki adettir.

3-Veritabanımızı oluşturduktan sonra sıra geldi kodlama yaparak menu kontrolumuzu oluşturmaya.
menu  olusturmak için  menuolustur adında  bir fonksiyon yazdım.

using System.Data.SqlClient;//SQL server'ı kullanmak için gerekli

 

public void menuolustur()

{

string baglan = "data source=localhost;initial catalog=deneme;integrated security=true;";

/*Veritabanına bağlanmak için yolumuzu belirtiyoruz*/

SqlConnection connection = new SqlConnection(baglan);

connection.Open();

SqlDataAdapter adp1 = new SqlDataAdapter("select * from kategori",connection);

/*adp1 ile veritabanındaki kategori tablosunda sorgu çalıştırmayı sağladık*/

SqlDataAdapter adp2 = new SqlDataAdapter("select * from altkategori",connection);

/*adp2 ile veritabanındaki altkategori tablosunda sorgu çalıştırmayı sağladık*/

DataSet ds = new DataSet();

/*veritabanlarımızın örneklerinin aktarılacağı datasetimizi oluşturduk*/

adp1.Fill(ds,"kategori");

/*dataset'imize kategori tablosunun örneği alındı*/

adp2.Fill(ds,"altkategori");

/*dataset'imize altkategori tablosunun örneği alındı */

ds.Relations.Add("iliski",ds.Tables["kategori"].Columns["kat_id"],ds.Tables["altkategori"].Columns["kat_id"]);

/*burada dataset nesnesinin bir özelliği olan relations özelliğini kullanarak iki tabloyu ilişkilendirdik

ve bu ilişkimizi iliski olarak adlandırdık..

*/

foreach (DataRow kategoriveri in ds.Tables["kategori"].Rows)//adım adım kategori tablosundaki verileri okudum

// ve içeriğini kategoriveri içerisinde tutuyorum..

{

/**/

MenuItem kategori = new MenuItem();//ust menu için ornek olusturdum

kategori.ImageUrl = "ok.jpg";// burada menumun sol kısmında kullanacağım ok simgesini ekledim

kategori.Text = kategoriveri["ad"].ToString();//üst menünün isim değerleri aktardım

kategori.NavigateUrl = kategoriveri["link"].ToString();//ustmenunun linklerini aktardım

Menu1.Items.Add(kategori);//ve burada tüm bu yaptıklarımı menu kontrolume aktardım

foreach (DataRow altkategoriveri in kategoriveri.GetChildRows("iliski"))// altmenulerimi olusturmak için kurmuş olduğum iliskiden

//yararlandım ve iliski içerisinde olan altkategori tablosunun degerlerini satır satır okuyorum.

{

MenuItem altkategori = new MenuItem();// alt menu değerlerini olusturmak için item orneği oluşturuyorum

altkategori.ImageUrl = "ok.jpg";//yine sol tarafdaki arrow'u ayarlıyorum

altkategori.Text = altkategoriveri["ad"].ToString();//altmenu isimlerini altkategori veritabanından alıyorum..

altkategori.NavigateUrl = altkategoriveri["link"].ToString();//altmenuye ait linkleri aktarıyorum

kategori.ChildItems.Add(altkategori);//alt menude olusmus durumda..

}

}

}




 bu  yazdığımı  fonksiyonu  çalıştırmak için  form load olayına  aşağıdaki kodlamayı yapıyorum

if(!IsPostBack) // burada  sayfa ilk kez yüklenince  koşulunu  belirttik

{

menuolustur();

}



Tüm arkadaşlara başarılar  dilerim..

 bu  yazdığımı  fonksiyonu  çalıştırmak için  form load olayına  aşağıdaki kodlamayı yapıyorum

Yazar Hakkında 2 Yorum Yorum Yaz Yazara ait diğer Makaleler
Tema
Anket
ASP.NET MVC'yi Projeleriniz de kullandınız mı?


En Çok Okunan Makaleler
En Son Eklenen Makaleler
Soru Merkezinde Bekleyenler
Ana Sayfa | Hakkımızda | Editörler | Yazarlar | RSS RSS | İletişim
Yazılım Günlüğü 2007-2009 © Tüm Hakları Saklıdır.