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

我正在使用 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))
)

最佳答案

你应该尝试这样的事情

在您的模型中,为 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) 的 View ,最后将下拉列表放在 Role.cshtml View 中。

有关更多详细信息 http://www.telerik.com/community/forums/aspnet-mvc/grid/combo-box-in-grid.aspx
样本 http://www.telerik.com/ClientsFiles/327900_TelerikMvcGridEditingDropdown.zip

关于asp.net-mvc - 带有下拉列表的 Telerik 网格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9017683/

10-14 07:24