【问题标题】:How do know Kendo grid.savechanges() method is success or fail如何知道 Kendo grid.savechanges() 方法是成功还是失败
【发布时间】:2021-03-11 05:58:11
【问题描述】:

我在页面中有一个剑道 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() 完成并检查保存是成功还是失败。如果失败我不想打开剑道弹出窗口。这里数据源函数在完成按钮点击函数后调用

【问题讨论】:

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


    【解决方案1】:

    这是因为保存更改是一个异步函数。因此,无论保存函数的结果如何,其余代码都将执行。 一个简单快捷的方法是在调用保存更改之前设置一个全局变量。然后,一旦从服务器接收到保存结果,网格将触发 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();
      }     
     }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-03-01
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      • 2015-05-30
      • 2021-04-17
      • 1970-01-01
      • 2012-08-19
      • 2019-02-09
      相关资源
      最近更新 更多