Kendoui MVC EditorTemplateName在PopUp编辑模式下不起作用

时间:2013-07-16 13:27:16

标签: asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc kendo-combobox

我想将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"))
    )
)

1 个答案:

答案 0 :(得分:8)

使用InLine / InCellPopup时,渲染的处理方式确实不同。对于后者,实际将要使用的编辑器模板是从名称推断出来的,因此您需要在Product.cshtml中添加~Views/Shared/EditorTemplates模板。

本文详细介绍了这一点: http://docs.kendoui.com/getting-started/using-kendo-with/aspnet-mvc/helpers/grid/editor-templates