4

现在我已经tryed解决了几个小时的问题,我将要放弃......Telerik的网格DROPDOWNLIST

我使用MVC 3格KONTROL从Telerik的。在我的网格中,我希望dropdownlists选择的项目对应于用户的角色。 Dropdownlist具有所有用户角色。

@(Html.Telerik().Grid(Model) 
    .Name("Grid").TableHtmlAttributes(new { width="800"}) 
    .Columns(columns => 
    { 
     //if (userIsInWhateverRole){ 
     // columns.Template(o => Html.Action(GenerateYourLinkStuffHere)); 
     //} 
     columns.Bound(o => o.Name).Width(150); 
     columns.Bound(o => o.Email).Width(120); 
     columns.Template(
      @<text> 
       @Html.DropDownList(item.Role, (IEnumerable<SelectListItem>)item.Roles) 
       @Html.DropDownListFor(x => item.Role, (IEnumerable<SelectListItem>)item.Roles) 
      </text> 
     ).Width(120); 
    }) 
    .Sortable() 
    .Scrollable() 
    .Groupable() 
    .Filterable() 
    .Pageable(paging => paging.PageSize(5)) 
) 

回答

6

你应该尝试这样

在模型中,添加属性[UIHint("Role")]的角色属性(保持简单的字符串)

负载的电网,因为它是

columns.Bound(o => o.Name).Width(150); 
columns.Bound(o => o.Email).Width(120); 
columns.Bound(o => o.Roll).Width(120); 

在EditorTemplates (this is a folder, directory like as View/(controller-specific-folder)/EditorTemplates)的内部添加一个名为Role.cshtml的视图,最后将您的下拉列表放在Role.cshtml视图中。

详情http://www.telerik.com/community/forums/aspnet-mvc/grid/combo-box-in-grid.aspx 样品http://www.telerik.com/ClientsFiles/327900_TelerikMvcGridEditingDropdown.zip

+0

它的工作原理,但我必须做什么才能让它从开始编辑?所以我不必按更新/编辑按钮? – Timsen

+0

然后确保Model.Role是键入IEnumarable 和作为'columns.Template写( @ @ Html.DropDownList( “下拉名称”,Model.Role) );' – Reza

+0

我不能使用模型角色,它一直说它不能解决这个符号...我可以使用item.Role。我已将角色的类型更改为IEnumerable ...任何想法?我的模型在视图中也必须是IEnumerable ? – Timsen

1

所以,相反的

@Html.DropDownListFor(x => item.Role, (IEnumerable<SelectListItem>)item.Roles) 

你应该这样做

@Html.DropDownListFor(x => item.Role, new SelectList(item.Roles, item.Role)) 

,并应解决您的问题。