2016-05-14 14 views
0

Nach ein paar Beispielen online und sogar hier, ich bin nah dran, den Popup-Editor offen zu halten, nachdem ein Serverfehler zurückgegeben wird.Verhindern Kendo-ui Popup-Editor vom Schließen auf Update

Das Ereignis wird tatsächlich aufgerufen (Fehler und Datenbank), aber nach dem Ausführen von e.PreventDefault() nach dem Klicken auf Update wird das Fenster ständig geschlossen. Irgendwelche Ideen Jungs? (Danke)

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" } } }, 
       } 


}, 

Antwort

0

Scheint wie wenn die Datenbindung an eine anonyme Funktion gebunden wird, wird es nur diese Zeit aufgerufen. Es passiert jedoch, dass das Klicken auf "Aktualisieren" im Editor einige weitere Aktionen auslöst (erneut binden (2 Mal), synchronisieren). Aus diesem Grund habe ich gerade beschlossen, das DataBinding-Ereignis im Grid festzuhalten und nach einem Flag zu suchen, falls ein Fehler aufgetreten ist. Dadurch wird preventDefault für alle anderen kaskadierenden Trigger ausgegeben, die später auftreten können.

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

       if (editHasErrors) 
       { 
        e.preventDefault(); 
        editHasErrors=0; 
       } 
      }, 
Verwandte Themen