2013-02-22 15 views
5

Używam siatki Kendo UI z edycją wyskakującą. Domyślnie, gdy użytkownik edytuje pole w edytorze podręcznym i uderza klawiszem Enter, dane są renderowane do siatki (za edytorem podręcznym), ale okienko pozostaje widoczne, a zdarzenie zapisu nie jest uruchamiane, dopóki nie klikniesz przycisku "Aktualizuj przycisk ".Kendo Grid: Trigger Update kliknij na klawisz Enter, aby edytować wyskakujące okienka

Próbuję zmienić tę funkcjonalność, tak aby po naciśnięciu klawisza Enter podczas edytowania pola wywołałoby kliknięcie przycisku "Aktualizuj" - co oznacza, że ​​spowodowałoby wyświetlenie danych w siatce, zwolniłoby zdarzenie zapisu i zamknęło edytor podręczny.

Moja aktualna próba zamknie edytor wyskakujących okienek, ale nie wywoła zdarzenia składowania i cofnie zmiany wprowadzone w polach dla wybranego wiersza. Prawie jak przycisk anulowania został wywołany zamiast tego.

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

Jak mogę wyzwolić „update” kliknięcie przycisku, lub przynajmniej symulować, co robi?

Odpowiedz

4

nie byłem w stanie znaleźć sposobu kendo spowodować zmienionego pola do zabrudzenia, a następnie zostać zapisany, więc użyłem trochę jQuery i po prostu przesunięta ostrość z aktualizacją następnie aktywował zdarzenie click. Działa zgodnie z oczekiwaniami ...

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

     }); 
    }); 
}; 
+0

To działało również dla mnie, ale w ciągu 1 sekundy mam błąd js: Nie można użyć operatora "in" do wyszukiwania "getSelection" w niezdefiniowanym. Stacktrace nie powie nic przydatnego, coś wewnętrznego. Po kliknięciu na aktualizację btn myszką - wszystko jest ok .. – EvgeniyK

+0

@ bflemi3 Dzięki za twoje pytanie i odpowiedź, ale jakie są opcje? gdzie napisałeś tę funkcję? Czy możesz wyjaśnić trochę więcej? – MustafaP

+0

@MustafaP Wydaje mi się, że podłącza się do [wydarzenia edycji] (http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#events-edit) za pośrednictwem [setOptions] (http: // docs .telerik.com/kendo-ui/api/javascript/ui/grid # methods-setOptions). – Hastarin

2

Proponuję użyć saveRow method, który zapisze bieżące dane i zamknie edytor PopUp.

np

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

Może to działa w edycji bezpośredniej, ale nie działa w przypadku edycji wyskakujących okienek. – bflemi3

+0

Problem polega na tym, że pole wejściowe musi najpierw stracić ostrość, zanim model zostanie zaktualizowany. –

Powiązane problemy