如何解决如何知道Kendo grid.savechanges() 方法是成功还是失败
我在一个页面中有一个剑道 MVC 网格。在那个页面我有按钮。当我点击按钮时,我想打开一个剑道窗口弹出窗口。
所以这是我的问题。
当我单击该按钮时正在保存网格值并且我正在打开剑道窗口弹出窗口。所以如果我在网格中有错误,那么我不想打开剑道窗口弹出窗口。如何实现这一目标。下面是我的按钮点击代码。
$("#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 函数的结果如何。 一个简单快捷的方法是在调用保存更改之前设置一个全局变量。然后一旦从服务器收到保存结果,网格将触发 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();
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。