【问题标题】:Exception in KendoUI Grid InCell edit required for batch updates with batch set to false批处理设置为 false 的批处理更新需要 KendoUI Grid InCell 编辑中的异常
【发布时间】:2013-08-25 13:16:13
【问题描述】:

我在尝试将 KendoUI Grid 用于在 Visual Studio 2013 中开发的 ASP.NET MVC (.net 4.5) 应用程序时遇到异常。我已将网格配置为使用内联编辑并已将 Batch 明确设置为数据源部分中的 false。这被渲染为部分视图。需要注意的是,如果 GridEditMode.InLine 设置为 GridEditMode.InCell 则不会抛出异常。

异常

您必须使用 InCell 编辑模式进行批量更新。

说明:在执行当前网络请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详情: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"))
    )
)

【问题讨论】:

    标签: c# asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc


    【解决方案1】:

    我已经解决了...

    在工具栏中,我有以下命令toolBar.Save(),它似乎告诉控件它将处于某种批量编辑模式。通过删除它,我现在能够获得我想要的行为......

    复制粘贴示例很危险!

    【讨论】:

    • 我没有得到..可以解释更多。如何向控制器发送数据。 if remover tootlBar.Save() 我们将如何将数据发布到控制器。
    【解决方案2】:

    改变

    .Editable(editable => editable.Mode(GridEditMode.InCell))
    

    .Editable(editable => editable.Mode(GridEditMode.InLine))
    

    正如你所说,删除toolBar.Save();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 2019-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多