如何知道剑道grid.savechanges()方法是成功还是失败



我在页面中有一个剑道MVC网格。在那一页我有按钮。当我点击按钮时,我想打开一个kendowindow弹出窗口。

这就是我的问题。

当我点击该按钮保存网格值,我正在打开剑道窗口弹出。所以如果我有一个错误在网格然后我不想打开剑道窗口弹出。如何做到这一点。下面是我的按钮点击代码。

$("#btnAddProject").click(function (e) {
var grid = $("#Grid").data("kendoGrid");
grid.saveChanges();
var myWindow = $("#AddProjectWindow");
myWindow.data("kendoWindow").open();
myWindow.data("kendoWindow").center();
});

下面包含了数据源事件。events.Error("error_handler" .RequestEnd("gridRequestEnd"

但是这些数据源函数在单击事件完成后调用。但我想等待grid.saveChanges()完成并检查保存是否成功或失败。如果失败,我不想打开剑道弹出。这里数据源函数在完成后调用按钮点击函数

这是因为保存更改是一个异步函数。因此,不管保存函数的结果如何,其余代码都将执行。一个简单而快速的方法是在调用save changes之前设置一个全局变量。然后,一旦从服务器接收到保存结果,网格将触发onRequestEnd方法。如果设置了全局变量,可以在那里打开弹出窗口。

$("#btnAddProject").click(function (e) {
var grid = $("#Grid").data("kendoGrid");
isSavingChanges = true;
grid.saveChanges();
});
function gridRequestEnd(e) {
if (e.Response){//Response is not null means it is most probably ajax result
if(isSavingChanges == true){
isSavingChanges = false;
var myWindow = $("#AddProjectWindow");
myWindow.data("kendoWindow").open();
myWindow.data("kendoWindow").center();
}     
}
}

最新更新