Телерик сетка с выпадающим списком - PullRequest
4 голосов
/ 26 января 2012

Теперь я попытался решить проблему в течение нескольких часов, и я собираюсь сдаться ...

Я использую MVC 3 grid control от Telerik.В моей сетке я хочу, чтобы выпадающие списки выбранного элемента соответствовали роли пользователя.В выпадающем списке есть все роли пользователей.

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

6 голосов
/ 26 января 2012

вы должны попробовать что-то вроде этого

в вашей модели, добавить атрибут [UIHint("Role")] для свойства Role (оставьте его простой строкой)

загрузить сетку как есть

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

добавьте представление с именем Role.cshtml внутри EditorTemplates (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 sample http://www.telerik.com/ClientsFiles/327900_TelerikMvcGridEditingDropdown.zip

1 голос
/ 10 октября 2012

Итак, вместо

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

Вы должны сделать это

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

И это должно решить вашу проблему.

...