Mvc 3 – Select List Örneği

By | June 16, 2011

Database üzerinden View dosyalarında görüntülenmek üzere çekilmiş bir selectlist örneği:

Controller

ViewData["RoundTrips"] = new SelectList((from roundtrip in db.RoundTripFlights
                                                    where roundtrip.Flight.date > System.DateTime.Now
                                                    orderby roundtrip.Flight.date
                                                    select roundtrip).Select(c => new { value = c.id, text = c.Flight.date + " / " + c.Flight.flight_number }), "value", "text");

View

            @Html.DropDownListFor(model => model.roundtrip_id,(SelectList)ViewData["RoundTrips"])
            @Html.ValidationMessageFor(model => model.roundtrip_id)

Aşağıdaki örnekte database bağlantısı olmadan mvc 3 yapısına uygun select list oluşturma verilmiştir. Html çıktısı formu ve geri dönüşü tanımlanmamıştır, sadece selectlistitem tipine ait liste ve bu listenin veri akışı verilmiştir. Örneklerde Razor View Engine kullanılmıştır fakat @ karakteri ve tag açıp kapatma dışında farklılığı yoktur.

Örnekte bir adet select oluşmakta ve içerisinde “Ankara” ve “İstanbul” seçenekleri ile bunlardan birinin seçimi halinde value’da tanımlanan dönüş verisi olarak plaka kodu kullanılmıştır.

Model

public class Modelim
{
public string PlakaKod{ get; set; }
}

View

@model MvcApplication1.Models.Modelim
@Html.DropDownListFor(Model => Model.PlakaKod, (IEnumerable)ViewData["listem"])

Controller

public ActionResult Ornek()
{
List liste = new List();

liste.Add(new SelectListItem() { Text = "İstanbul", Value = "34" });

liste.Add(new SelectListItem() { Text = "Ankara", Value = "6" });

ViewData["listem"] = liste;

return View();
}

not: yukarıdaki bu basit örnek, kullanımlardan sadece birini ve en basit olanını belirtmektedir.

Aşağıdaki Örnek evet,hayır şeklinde bir selectlist örneğidir:

SelectList yesno = new SelectList(new[] { new { Text = "Evet", Value = 1 }, new { Text = "Hayır", Value = 0 } }.Select(c => new { value = c.Value, text = c.Text }), "value", "text");

Aşağıdaki örnek database’den direk selectlist oluşturma örneğidir:

SelectList tours= new SelectList(db.Tours.OrderBy(c => c.name).Select(c => c).ToList(), "id", "name");

Aşağıdaki örnek database’den aldığı tarihleri bir seleclist içine sıralı olarak yerleştirip, formatını da belirttiğim bir örnek:

SelectList dates = new SelectList(db.Bookings.OrderBy(c => c.EstimatedTour.RoundTripFlight.Flight.date).Select(c => c.EstimatedTour.RoundTripFlight.Flight.date).Distinct().ToList().Select(x => new { value = x.ToString("yyyy.MM.dd"), text = x.ToString("dd.MM.yyyy") }), "value", "text");

Örnekte görüldüğü üzere “text” yani selectlist’te görülecek değer gün/ay/yıl formatında verilirken “value” kısmı tam tersi olarak yıl/ay/gün formatındadır. Sorgularda tekrar convert etmeye gerek kalmaması için böyle birşey yazmışım.

3 thoughts on “Mvc 3 – Select List Örneği

  1. Barış Halıcı

    Verdiğin bilgiler için teşekkürler.
    Fakat list tanımlaması yanlış olduğundan dolayı işlemler gerçekleşemiyor.Yardımlarınızı bekliyoruz.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *