我有一个用户角色列表,我试图在我的网格列中显示,并尝试在编辑弹出窗口中设置自定义模板。
我尝试使用显示/编辑器模板,但发现ajax绑定不支持这些(因为模型总是为null)。因此,列方面的修复是在相关列上使用.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 =&gt; w.Content(“......这里的内容......”))无济于事。每次弹出默认的编辑窗口。
答案 0 :(得分:3)
有关在ASP.NET MVC中编辑嵌套对象的更多信息,我建议您检查this blog post.
Maybe this help topic will help too.
您还可以指定部分视图,该视图可用作编辑器表单:
.Editable(editing => editing.TemplateName("TemplateName"))
答案 1 :(得分:2)
我能够通过使用约定来实现相同的功能。我将GridEditMode指定为PopUp,然后在以下路径中放置一个与我的模型同名的视图
〜/查看/共享/ EditorTemplate / ModelName.cshtml
我这样做是因为网格有相同类型的子节点,我实际上并不需要指定模板。