我想将EditorTemplateName用于KendoUi网格中的外键列。
当网格编辑模式为InLine时,一切正常,我的模板已加载。但当更改模式为Popup时不加载模板。 怎么能解决它?
@(Html.Kendo().Grid<Product>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.ProductId).Visible(false);
columns.Bound(p => p.Title);
columns.ForeignKey(p => p.CategoryId, new SelectList(ViewBag.CategoryySelectList, "Value", "Text"))
.EditorTemplateName("MyTemplate");
columns.Command(cmd => cmd.Edit());
})
.Editable(edit => edit
.Mode(GridEditMode.PopUp)
)
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(15)
.Events(events => events.Error("error_handler"))
.Model(model =>
{
model.Id(p => p.ProductId);
})
.Read(read => read.Action("FillGrid", "Products"))
.Update(update => update.Action("Edit", "Products"))
.Destroy(destroy => destroy.Action("Delete", "Products"))
)
)
答案 0 :(得分:8)
使用InLine
/ InCell
与Popup
时,渲染的处理方式确实不同。对于后者,实际将要使用的编辑器模板是从名称推断出来的,因此您需要在Product.cshtml
中添加~Views/Shared/EditorTemplates
模板。
本文详细介绍了这一点: http://docs.kendoui.com/getting-started/using-kendo-with/aspnet-mvc/helpers/grid/editor-templates