批处理设置为false的批处理更新需要KendoUI网格InCell编辑中的异常
本文关键字:批处理 InCell 网格 编辑 异常 KendoUI 设置 false 更新 | 更新日期: 2023-09-27 18:28:50
我在尝试将KendoUI网格用于Visual Studio 2013中正在开发的ASP.NET MVC(.NET 4.5)应用程序时遇到异常。我已经将网格配置为使用InLine编辑,并在数据源部分明确将Batch设置为false。这将被渲染为局部视图。需要注意的是,如果GridEditMode.InLine设置为GridEditMode.InCell,则不会引发异常。
例外
必须使用InCell编辑模式进行批量更新。
描述:在执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误以及错误在代码中的来源的更多信息。
异常详细信息:System.NotSupportedException:必须使用InCell编辑模式进行批更新。
代码
@using Kendo.Mvc.UI
@model MyApp1.Data.DataModels.Agent
@(Html.Kendo().Grid<MyApp1.Data.ViewModels.PhoneNumberVM>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.Number);
columns.Bound(p => p.Description);
columns.Command(command => command.Edit()).Width(90);
columns.Command(command => command.Destroy()).Width(90);
})
.ToolBar(toolBar =>
{
toolBar.Create().Text("Add Phone Number");
toolBar.Save();
})
.Editable(editable => editable.Mode(GridEditMode.InLine))
.DataSource(dataSource => dataSource
.Ajax()
.Batch(false)
.Events(events => events.Error("error_handler"))
.Model(model =>
{
model.Id(p => p.PhoneNumberId);
model.Field(p => p.PerId).Editable(false).DefaultValue(@Model.PerId);
})
.Read(read => read.Action("_GetPhones", "Pers", new { AgentId = Model.AgentId }))
.Create(create => create.Action("_AddPhone", "Pers"))
.Update(update => update.Action("_EditPhone", "Pers"))
.Destroy(destroy => destroy.Action("_DeletePhone", "Pers"))
)
)
我已经解决了这个问题。。。
在工具栏中,我有以下命令toolBar.Save()
,它似乎告诉控件它将处于某种批量编辑模式。通过删除此项,我现在可以获得我想要的行为。。。
复制粘贴示例是危险的!
更改
.Editable(editable => editable.Mode(GridEditMode.InCell))
至
.Editable(editable => editable.Mode(GridEditMode.InLine))
正如您所说,删除toolBar.Save();