Как переопределить всплывающее окно редактора сетки Telerik MVC при использовании ClientTemplates и AjaxBinding - PullRequest
2 голосов
/ 26 сентября 2011

У меня есть список ролей пользователей, которые я пытаюсь отобразить в столбце сетки, и пытаюсь настроить пользовательский шаблон во всплывающем окне редактирования.

Я попытался выполнить команду Tac.использования шаблонов отображения / редактирования, но обнаружил, что привязка ajax не поддерживает их (поскольку модель всегда равна нулю).Таким образом, исправление для стороны столбца использует .ClientTemplate для рассматриваемого столбца ..., который работает в следующем упрощенном примере моей таблицы ...

@( Html.Telerik().Grid<UserSearchModel>()
    .Name("Grid")
    .DataKeys(keys => { keys.Add(p => p.UserId); })
    .Columns(columns =>
           {
               columns.Bound(o => o.UserId).Visible(false) ;
               if(Context.User.IsInRole("Admin")) columns.Bound(o=>o.CompanyName).Width(100);
               columns.Bound(o => o.RolesModel).ClientTemplate("<strong><#= RolesModel.RoleName #></strong>");
               columns.Command(commands =>
               {
                   commands.Edit().ButtonType(type);
               }).Width(180).Title("Commands");       
           })
    .DataBinding(dataBinding => dataBinding.Ajax()
                   .Select("_AjaxBinding", "Users")
                           .Update("Edit", "Users")
                               .Insert("Create", "Users")
                 )
    .Resizable(resizing => resizing.Columns(true))
    .Reorderable(reorder => reorder.Columns(true))
    .Editable(editable => editable.Mode(GridEditMode.PopUp))
    .Pageable(p=> p.PageSize(13))
    .Sortable()
    .Scrollable(scrolling => scrolling.Height("400px"))
    .Groupable()
    .Filterable()

)

Но этоне переходит к всплывающему окну редактирования ... поэтому мой вопрос заключается в том, как мне удается переопределить всплывающее окно, чтобы показать настраиваемое отображение для столбца, которому я назначил .ClientTemplate?

У меня естьпопытался использовать WindowBuilder (.Window (w => w.Content ("... здесь все содержимое ...")) безрезультатно. Окно редактирования по умолчанию появляется каждый раз.

Ответы [ 2 ]

3 голосов
/ 27 сентября 2011

Для получения дополнительной информации о редактировании вложенных объектов в ASP.NET MVC я предлагаю вам проверить этот пост в блоге.

Возможно, этот раздел справки тоже поможет.

Вы также можете указать частичное представление, которое можно использовать как форму редактора:

.Editable(editing => editing.TemplateName("TemplateName"))
2 голосов
/ 26 апреля 2012

Мне удалось достичь той же функциональности, используя соглашение. Я указал GridEditMode как PopUp, а затем поместил представление с тем же именем, что и моя модель, по следующему пути

~ / Views / Shared / EditorTemplate / ModelName.cshtml

Я сделал это, потому что у сетки есть дочерние элементы одного типа, и мне на самом деле не нужно указывать шаблон.

...