2016-05-14 5 views
0

オンラインで、さらにここでもいくつか例を挙げて、サーバーエラーが返された後でポップアップエディタを開いたままにしています。Kendo-uiポップアップの編集者が更新を終了させないようにする

イベントは実際に呼び出されています(エラーとデータバインド)が、更新をクリックした後にe.PreventDefault()を実行した後も、ウィンドウは常に閉じたままです。どんなアイデアみたいな? (ありがとう)

dsBranches = new kendo.data.DataSource({ 
      error: function (arg) { 
       var _grid = $("#branchesGrid").data("kendoGrid"); 
       try { 
         _grid.one("dataBinding", function (e) { 
          e.preventDefault(); 
         }); 
      } 
       catch (ee){}; 
      }, 

      transport: { 
       read: { 
        url: "admin/branch/getBranches", 
        dataType: "json" 
       }, 
       update: { 
        url: "admin/branch/updatetBranches", 
        contentType: "application/json", 
        dataType: "json", 
        type: "POST" 
       }, 
       parameterMap: function (data, operation) { 

        if (operation != "read") { 
         return kendo.stringify(data); 
        } 
        else { 
         return kendo.stringify(data); 
        } 
       } 
      }, 

      schema: { 
       errors: "error", 
       model: { 
        id: "Id", 
        fields: { 
         Name: { type: "string", validation: { required: { message:  "Name is empty" } } }, 
       } 


}, 

答えて

0

匿名関数にdataBindingをバインドすると、その時間だけ呼び出されます。しかし、エディタで更新をクリックすると、いくつかの他のアクション(rebind(2回以上)、sync)がトリガされます。このため、グリッドにdataBindingイベントをキャプチャし、エラーがあった場合にフラグをチェックするようにしました。後で起こるかもしれない他のカスケードトリガーのためのpreventDefaultを発行します。

gridBranches = $('#branchesGrid').kendoGrid({ 
      dataBinding: function (e) { 

       if (editHasErrors) 
       { 
        e.preventDefault(); 
        editHasErrors=0; 
       } 
      }, 
関連する問題