具有dropdownList的Telerik网格

时间:2012-01-26 11:46:09

标签: asp.net-mvc asp.net-mvc-3 model-view-controller drop-down-menu telerik

现在我已经尝试解决这个问题几个小时了,我即将放弃......

我正在使用Telerik的MVC 3网格控制器。在我的网格中,我希望下拉列表选择的项目对应于用户的角色。下拉列表具有所有用户角色。

@(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))
)

2 个答案:

答案 0 :(得分:6)

你应该尝试这样的事情

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

按原样加载网格

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

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

有关详细信息,请http://www.telerik.com/community/forums/aspnet-mvc/grid/combo-box-in-grid.aspx 示例http://www.telerik.com/ClientsFiles/327900_TelerikMvcGridEditingDropdown.zip

答案 1 :(得分:1)

所以,而不是

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

你应该这样做

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

这应该可以解决你的问题。