2013-07-22 3 views
1

I이 드롭 다운리스트 뷰 요소들의리스트를 도시세트 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")     
} 

I 옵션을 많이 시도되고있다하지만 난 그것을하는 방법을 모른다 ... 내가 "관리자"를 표시하고있다하지만 난 기본값을 원하는

Thaning 당신 미리!

답변

1

SelectListItem에서 "Selected"속성을 true로 설정해야합니다. 나는이 기반으로, 다수의 드롭 다운리스트를 가지고 있기 때문에 내보기에서 값을 설정해야

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

: SelectListItems의 원래 수집 될

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; } 

소스 변수 : 당신은 같은 인구 방법을 만들 수 item.type에 "저장"하는 데이터베이스의 값. 어쩌면 내 견해에 어긋나는 것일 수도 있습니다. 고맙습니다! – Alsan

+1

흠 ... ViewModel에서 여러 IEnumerable 속성을 ​​만들 수 있습니까 (ViewModels를 사용하는 경우 ...)? 각각의 드롭 다운은 구별됩니다. 드롭 다운마다 하나의 해당 속성을 만드는 것을 고려해야합니다. –

+0

감사합니다! 마지막으로 내 모델의 각 값에 대해 다른 드롭 다운 목록을 만들었습니다. – Alsan