2013-07-22 127 views
1

我已經在模型設置DROPDOWNLIST默認值動態

tipoUsuario = new List<SelectListItem>();    
tipoUsuario.Add(new SelectListItem { Text = "Sin tipo", Value = "4" });     
tipoUsuario.Add(new SelectListItem { Text = "1 - Super usuario", Value = "1"});     
tipoUsuario.Add(new SelectListItem { Text = "2 - Administrador", Value = "2" }); 
tipoUsuario.Add(new SelectListItem { Text = "3 - Usuario", Value = "3" });     

public List<SelectListItem> tipoUsuario { get; set; } 

該視圖顯示元件的列表定義的本下拉列表中,每個元件都具有一個下拉列表,其中的每一個必須具有基於一個不同的缺省選擇的值來自控制器的值。現在我出「管理員」,但我想的默認值...

if (@item.type == "2") 
{      
    @Html.DropDownListFor(x => item.type, item.tipoUsuario, "Administrator")     
} 

我已經被嘗試很多的選擇,但我不知道該怎麼做,幫我請

Thaning你提前!

回答

1

您需要在SelectListItem上將「Selected」屬性設置爲true。你可以創建這樣一個人口方法:

public IEnumerable<SelectListItem> PopulateTipoUsuario(string default){ 
    var tipo = from t in source 
        select new SelectListItem 
        { 
         Text = t.Text, 
         Value = t.Value, 
         Selected = t.Text == default 
        }; 
     return tipo; 
} 

源變量將是你原來的SelectListItems的集合:

var source = new List<SelectListItem>();    
tipoUsuario.Add(new SelectListItem { Text = "Sin tipo", Value = "4" });     
tipoUsuario.Add(new SelectListItem { Text = "1 - Super usuario", Value = "1"});     
tipoUsuario.Add(new SelectListItem { Text = "2 - Administrador", Value = "2" }); 
tipoUsuario.Add(new SelectListItem { Text = "3 - Usuario", Value = "3" }); 
+0

我必須從我的觀點設置的值,因爲我有多個下拉列表,基於在來自我的數據庫的值,我「保存」在item.type中。也許我錯了我的觀點。謝謝! – Alsan

+1

嗯......你可以在你的ViewModel中創建多個IEnumerable 屬性(如果你使用ViewModels ...)?每個下拉列表都是不同的,你應該看看每個下拉菜單創建一個相應的屬性。 –

+0

謝謝!最後,我爲我的模型中的每個值創建了不同的下拉列表! – Alsan