【问题标题】:Telerik MVC Grid Inline editing requires page refresh to display changesTelerik MVC 网格内联编辑需要刷新页面才能显示更改
【发布时间】:2019-04-12 15:17:36
【问题描述】:

我有一个 Telerik MVC 网格,我在其中更新内联行(更新名称列,数字列不可编辑)

 @Html.Kendo().Grid(Model.Employees)
        .Name("EmployeeGrid")
        .Columns(col =>
        {
            col.Bound(o => o.EmployeeNumber);
            col.Bound(o => o.Name).Width(250);
            col.Command(command => { command.Edit(); });
        })
        .Editable(editable => editable.Mode(GridEditMode.InLine))
        .DataSource(dataSource => dataSource
        .Ajax()
        .Events(e => e.RequestEnd("onGridDataSourceRequestEnd"))
        .Model(model =>
        {
            model.Id(o => o.EmployeeNumber);
            model.Field(o => o.EmployeeNumber).Editable(false);
        })
        .Update(update => update.Action("EditingInline_Update", "EmployeeUpdate"))
        .ServerOperation(false)
        )
        .Render();


 function onGridDataSourceRequestEnd(e) {
    if (e.type == "update") {
        console.log('I am inside Update');
        $("#EmployeeGrid").data("kendoGrid").dataSource.read();
    }
}

我的问题是,当我单击网格中的更新按钮时,上面的代码通过调用操作 EmployeeUpdate 来更新记录。但是,即使我在 JS 函数中调用数据源读取,该更改也不会立即反映在网格中。控制台显示“我在更新中”但不刷新网格。如果我刷新页面,我会看到更新行。

请让我知道我错过了什么。谢谢。

【问题讨论】:

    标签: asp.net-mvc telerik telerik-grid telerik-mvc


    【解决方案1】:

    你不应该在更新时刷新/重新加载你的网格,你只需要从控制器返回更新的记录,然后 grid-widget 会处理剩下的!

    请查看telerik demo-page

    我最常见的错误是忘记返回数据源结果:

    .ToDataSourceResult(request,ModelState)
    

    Telerik 通常返回发送到更新中的相同模型,但我通常返回读取函数返回的相同对象(如果读取执行某些操作,我也会在更新记录中得到它)。

    【讨论】:

    • 非常感谢。像魅力一样工作。
    【解决方案2】:

    或许您应该尝试使用refresh() 函数刷新网格:

    function onGridDataSourceRequestEnd(e) {
        if (e.type == "update") {
            console.log('I am inside Update');
            $("#EmployeeGrid").data("kendoGrid").dataSource.read();
    
            // add this line
            $("#EmployeeGrid").data("kendoGrid").refresh();
        }
    }
    

    注意dataSource中的read()函数只是通过请求向服务器重新加载数据源,在使用refresh()之前网格内容仍然没有改变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      相关资源
      最近更新 更多