Sayfalar

12 Nisan 2013 Cuma

ASP.NET MVC DROPDOWNLIST İKİ ALANI BİRLEŞTİRME

Dropdownlist içerisinde bazen textField alanında birden çok text göstermek isteyebiliriz. Bunun için 2 yöntem vardır. Öncelikle DDL içerisinde göstermek istediğimiz sınıfı tanımlayalım.

public class Musteriler
{
    public int Id { get; set; }
    public int MusteriNo { get; set; }
    public strind Ad { get; set; }
    public strind Soyad { get; set; }
}

Normalde controller içerisinde listeyi oluşturmak için şöyle bir kod yazarız;

ViewBag.Musteriler = new SelectList(db.Musteriler, "Id", "Ad");

Yukarıdaki kod da sadece muşterinin adı gelir. Örneğin bu sınıf için Ad ve Soyad özelliklerinin DDL içerisinde birlikte görünmesini isteyebiliriz. 

1. Linq sorgusu ile birleştirebiliriz

ViewBag.Musteriler = new SelectList((from m in db.Musteriler select new { 
    Id = m.Id,
    AdSoyad = m.Ad + " " + m.Soyad}), 
    "Id", 
    "AdSoyad", 
    null);

2. Sınıf içerisinde AdSoyad adında bir özellik tanımlayarak

Sınıfa aşağıdaki gibi bir ekleme yaparsak;

public class Musteriler
{
    public int Id { get; set; }
    public int MusteriNo { get; set; }
    public strind Ad { get; set; }
    public strind Soyad { get; set; }
    public string AdSoyad
    {
        get 
        {
            return string.Format("{0} {1}", Ad, Soyad);
        }
    }
}

ve controller içerisindeki listeyi çektiğimiz kodu aşağıdaki gibi değiştirirsek;

ViewBag.Musteriler = new SelectList(db.Musteriler, "Id", "AdSoyad");

Artık view içerisinde tanımlayacağımız DDL elemanının text alanında hem ad hemde soyad özelliği görünecektir.

Hiç yorum yok:

Yorum Gönder