2017-09-06 3 views
0

중복 된 질문 일 수도 있지만 어디서나 솔루션을 찾을 수 없습니다. 내가 DropDownList로WebGrid DropDownList 선택한 값?

@Html.DropDownListFor(model => model.LocationId, new SelectList(Model.LocationItems, 
         "Value", "Text",selectedValue: Model.LocationId)) 

위의 코드는 선택된 값을 드롭 다운의 모델 객체 즉 인덱스를 기반으로 & 작동 위치 ID입니다에 대한 하나의 모델 객체를 사용할 때 다음은 작업 코드입니다. 나는 웹 그리드를 사용할 때

그러나, 나는 아래로는 LocationId해야으로 인덱스 1을 (를) 다음과 함께 항상 드롭에

grid.Column(
    header: "Locations", 
    format: (item) => @Html.DropDownList("LocationId", Model.First().LocationItems.Select(l => new SelectListItem 
    { 
     Text = l.Text, 
     Value = l.Value, 
     Selected = ((WebGridRow)item)["LocationId"].ToString() == l.Value 
}))) 

선택한 값처럼 드롭 다운리스트에 선택된 값을 설정할 수 없습니다 해요 .

이 기능을 구현할 수있는 방법이 있습니까?

+1

당신은'Model.First()'첫 번째 멤버를 반환하는 데 사용. –

+0

그래, 나는 first()를 사용하지 않고 이것을 할 수있는 다른 방법이 있다는 것을 알았습니까 ?? – ashveli

답변

1

는이 같은 foreachgrid@Html.DropDownList의를 추가 할 수 있습니다

List<WebGridColumn> columns = new List<WebGridColumn>(); 
foreach (var col in Model) 
{ 
    columns.Add(
    new WebGridColumn() 
    { 
    header: "Locations", 
    Format = (item) => @Html.DropDownList("LocationId", @col.LocationItems.Select(l => new SelectListItem 
     { 
      Text = l.Text, 
      Value = l.Value, 
      Selected = ((WebGridRow)item)["LocationId"].ToString() == l.Value 
     } 
    )});  
} 

@grid.GetHtml(
     columns: columns 
관련 문제