2013-02-22 5 views
5

Ich verwende das Kendo UI Grid mit Popup-Bearbeitung. Wenn der Benutzer ein Feld im Popup-Editor bearbeitet und die Eingabetaste drückt, werden die Daten standardmäßig im Raster (hinter dem Popup-Editor) angezeigt. Das Popup bleibt jedoch sichtbar und das Speicherereignis wird erst ausgelöst, wenn Sie auf "Aktualisieren" klicken ' Taste.Kendo Grid: Trigger Update Klicken Sie auf die Eingabetaste drücken Sie für die Popup-Bearbeitung

Ich versuche, diese Funktionalität zu ändern, so dass, wenn ein Benutzer Hits eingeben, während ein Feld Bearbeitung würde es den ‚Aktualisieren‘ -Button klicken auslösen - Was bedeutet es, die Daten an das Netz machen würde, feuern das Ereignis speichern und schließen Sie die Popup-Editor.

Mein aktueller Versuch wird nur den Popup-Editor schließen, aber das Speicherereignis nicht auslösen und die Änderungen rückgängig machen, die an irgendwelchen Feldern für die ausgewählte Zeile vorgenommen wurden. Fast wie der Cancel-Button wurde stattdessen ausgelöst.

options.edit = function (e) { 
    $('.k-edit-field .k-input').on('keypress', function (e) { 
     utils.onEnter(e, function() { 
      $('.k-grid-update').trigger('click'); 
     }); 
    }); 
}; 

Wie kann ich lösen die ‚Aktualisieren‘ klicken, oder zumindest simulieren, was es tut?

Antwort

4

Ich war nicht in der Lage eine Kendo Methode zu finden, die geänderten Felder zu verursachen schmutzig werden und dann gespeichert werden, so habe ich ein wenig jQuery und verlagerte nur den Fokus auf das Update Die Schaltfläche löste dann das Klickereignis aus. Funktioniert wie erwartet ...

options.edit = function (e) { 
    $('.k-edit-field .k-input').on('keypress', function (e) { 
     utils.onEnter(e, function() { 
      $('.k-grid-update').focus().trigger('click'); 

     }); 
    }); 
}; 
+0

Das funktionierte auch für mich, aber in 1 Sekunde habe ich einen js Fehler: Kann 'in' Operator nicht verwenden, um nach 'getSelection' in undefined zu suchen. Stacktrace wird nichts nützliches, etwas internes sagen. Wenn ich auf Update btn mit der Maus klicke - alles ist in Ordnung .. – EvgeniyK

+0

@ bflemi3 Danke für Ihre Frage und Antwort, aber was ist Optionen? wo hast du diese funktion geschrieben? Kannst du etwas mehr erklären? – MustafaP

+0

@MustafaP Ich glaube, dass er sich über [setOptions] (http: // docs.) In die [edit event] (http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#events-edit) einklinkt .telerik.com/kendo-ui/api/javascript/ui/grid # methodensatzOptionen). – Hastarin

2

Ich würde vorschlagen, die saveRow method zu verwenden, die die aktuellen Daten speichern und den PopUp-Editor schließen wird.

zB:

$("#grid").data("kendoGrid").saveRow(); 
+1

Vielleicht funktioniert dies für die Inline-Bearbeitung, aber es funktioniert nicht für die Popup-Bearbeitung. – bflemi3

+0

Problem ist, das Eingabefeld muss zuerst den Fokus verlieren, bevor das Modell aktualisiert wird. –