2010-06-01 10 views
5

Sınıfım var RoomType:Listemi <Roomtype>'i ASP için SelectList'e dönüştür. NET MVC DropDownFor <>, seçenek öğesi başına doğru değerleri alın

Int32 Id 
String Name 
String ColorCode 

Benim viewmodel bir List<Roomtype> RoomTypes değerine sahip olacak ve bir açılır menüde görüntülenecektir.

Her bir açılan seçenek seçeneğinin: 1) Name, 2) Id değeri ve 3) stili arka plan rengi # ColorCode olarak adlandırılması gerekir.

Sorunum, bu listeyi ASP.NET MVC'nin DropDownFor yardımcısı tarafından gereken şekilde List<SelectListItem>'e doğru şekilde dönüştürmek ve daha sonra her seçenek için doğru değerlerin eklenmesidir.

new SelectList(RoomTypeList) döndüren bir getz RoomtypeSelectList olan viewmodel'de yeni bir readonly özelliğine sahip olmayı denedim ancak doğru özellikleri gösteremiyorum (Name, Id, Background color).

Doğru yönde bazı yardım veya işaretçiler için minnettarım ...

cevap

2

Eğer stil veya başlık oluşturmayı izin vermez html yardımcı yöntemler inşa seçilen liste öğeleri için bağlıyor.

Bu öznitelikleri eklemek isterseniz, kendi html helper yöntemlerinizi oluşturmanız veya yalnızca <% foreach ... %> kullanarak seçim listesini el ile göndermeniz gerekir. görünümünde

9

Sen roomTypesSelect ilan

List<SelectListItem> roomTypesSelect = new List<SelectListItem>(); 

    IList roomTypes = RoomTypeManager.GetAllRoomTypes(); 
    RoomTypes currentRoomType = RoomTypeManager.GetCurrentRoomType(); 
    bool isSelected = false; 
    foreach (RoomTypes roomTypes in roomTypes) 
    { 
    if (currentRoomType.Id == roomTypes.Id) 
     isSelected = true; 
    else 
     isSelected = false; 

    roomTypes.Add(new SelectListItem { Text = roomTypes.Name + " " +roomTypes.ColourCode, Value = roomTypes.Id, Selected = isSelected }); 
    } 

    ViewData["RoomTypes"] = roomTypes; 
+0

ederdiniz Denetleyiciniz eyleminde bu

<%=Html.DropDownList("userList", new SelectList((IEnumerable)ViewData["RoomTypes"], "Value", "Text",selectedValue)) %> 

gibi bir şey denemek ama onunla her şeyi görünmüyor? – JsonStatham

İlgili konular