Kendo UI Grid - 删除一行,出现错误但该行仍从网格中删除

Kendo UI Grid - Deleting a row, an error occurs but the row is still removed from the grid

我正在使用 Kendo UI 网格 MVC。当一行从网格中删除,并且服务器发生错误时,将向用户显示错误(基于存储在 ModelState 中的内容),这是应该的,但该行仍会在不应该的时候从网格中删除'被删除。如何防止 Kendo 在服务器出错时从网格中删除行?

作为解决方法,您可以尝试捕获网格数据源 error 事件并在发生时使用 canelChanges() 方法:

...
.DataSource(dataSource => dataSource
    ...
    .Events(events => events.Error("onGridError"))
)

在JavaScript中:

function onGridError() {
    var grid = $("#grid").data("kendoGrid");
    grid.cancelChanges();
}

Jaroslaw Koriczak 的回答在技术上是准确的,但他访问网格的效率很低。 Kendo 事件在调用它们的函数时将网格数据源作为 'this' 在其中发送。

...
.DataSource(dataSource => dataSource
...
    .Events(events => events.Error("onGridError"))
)

这部分是正确的,但是事件应该是这样的:

function onGridError() {

    this.cancelChanges();
}