Osman KURT

Kendime Not

ASP.Net MVC de @Html.DropDownListFor (Doldurmak) Kullanımı

Bu yazımız da asp.net de @Html.DropDownListFor kullanımı göstereceğim. ilk olarak kısaca mvc den bahsetmek gerekirse biliyorsunuz tamamı ile modeller üzerinden işlerimiz ilerlediği için bizde model üzerinden işlemimizi kullanılır hale getireceğiz. Öncelikle elimiz de bir access db olduğunu varsaylım ve Sayfalar adında bir tablomuz olsun. Bu tablomuzun da SayfaId(sayi),SayfaAd(metin),Icerik(not),RootID(sayi) gibi alanları olsun.

İşe ilk olarak bir model oluşturarark başlayalım isterseniz ve içine alt kısımda ki gibi propertilerimizi tamınlayalım.

 

public class Pages
    {
        public int SayfaId { get; set; }
        public string SayfaAd { get; set; }
        public string Icerik { get; set; }
        public int RootID { get; set; }
    }

 

 

Şimdi modelimizi oluştuduk dropumuzu doldurmak için bir fonksiyona ihtiyacımız var onuda alt kısımda ki yaptım ben ama siz farklı şekilde de yapabilirsiniz. Yeter ki geriye list döndürsün.

 

public class Pages
    {
        public int SayfaId { get; set; }
        public string SayfaAd { get; set; }
        public string Icerik { get; set; }
        public int RootID { get; set; }


        public List PageList()
        {
            List PList = new List();
            OleDbCommand cmd = new OleDbCommand("Select * from Sayfalar", baglan.baglanti);
            if (ConnectionState.Closed == baglan.baglanti.State)
                baglan.baglanti.Open();
            OleDbDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                Pages page = new Pages();
                page.SayfaId = Convert.ToInt32(dr["SayfaId"].ToString());
                page.SayfaAd = dr["SayfaAd"].ToString();
                page.Icerik = dr["Icerik"].ToString();
                page.RootID = Convert.ToInt32(dr["Root"]);
                PList.Add(page);
            }
            dr.Close();
            baglan.baglanti.Close();
            return PList;
        }
    }

 

 

Şimdi elimiz de bir adet modelimiz var ve bu modellerin içinde ise list döndüren bir fonksiyonumuz var. Gelelim ön kısmımıza.

Öncelikle Index sayfasında işlemi yapacağız. Bu yüzden de elimiz de 1 adet view 1 adet de controller var. ilk önce controller kısmında li ActionResult Index alanımıza bir adet ViewBag tanımlıyoruz ki içinde rahatça gezebilelim. Alt kısıma uygun kodu bulabilirsiniz.

 

public ActionResult Index(Pages Page)
        {
            ViewBag.PageList = Page.PageList();
            return View();
        }

Bu kodumuzu da yazdıktan sonra geriye kalan tek sayfamız view da ki Index sayfamız. Bu sayfamıza da Öncelikle en üst kısmında modelimizi tanımlamak şartı ile alt kısımda ki kodlarımızı uyguluyoruz.

 

@model KariyerMVC.Models.Pages

 

Şimdi ki esas kodumuz;

 

@Html.DropDownListFor(model => model.RootID, new SelectList(ViewBag.PageList, "SayfaId", "SayfaAd"))

 

Üst kısımda ki kodumuz da ViewBag.PageList içinde ki SayfaId ve SayfaAd kısımlarını aldım drop için de listeledim. Seçilen değeri de herhangi bir kayıt yada update,silme gibi işlemler de kullanmak üzere RootID değerine atadım.

*Not

Kod için de bulunan bağlan classımız;

 

public class baglan
{

    public static OleDbConnection baglanti = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\yazilimuzmani.mdb;Mode=ReadWrite;Persist Security Info=False");

}

 

Umarım faydalı olmuştur.

Görüşmek üzere

Yazılım uzmanı