Jak przeładować lub odświeżyć Kendo Grid za pomocą Javascript?
Często wymagane jest ponowne załadowanie lub odświeżenie siatki po pewnym czasie lub po akcji użytkownika.
kendo-ui
kendo-grid
Oxon
źródło
źródło
read
zażąda serwera i załaduje tylko ponownie źródło danych. Nie będzie żadnych zmian w interfejsie użytkownika.refresh
ponownie wyrenderuje elementy w siatce z bieżącego źródła danych. Dlatego oba są wymagane.Nigdy nie odświeżam.
sama pracuje dla mnie cały czas.
źródło
źródło
W ostatnim projekcie musiałem zaktualizować Kendo UI Grid na podstawie niektórych wywołań, które miały miejsce w niektórych menu rozwijanych. Oto, czego ostatecznie użyłem:
Miejmy nadzieję, że pozwoli to zaoszczędzić trochę czasu.
źródło
Żadna z tych odpowiedzi nie otrzymuje faktu, że
read
zwraca obietnicę, co oznacza, że możesz poczekać na załadowanie danych przed wywołaniem odświeżania.Jest to niepotrzebne, jeśli pobieranie danych jest natychmiastowe / synchroniczne, ale jest bardziej niż prawdopodobne, że pochodzi z punktu końcowego, który nie wróci natychmiast.
źródło
Jeśli nie chcesz mieć odniesienia do siatki w module obsługi, możesz użyć tego kodu:
Spowoduje to odświeżenie siatki, jeśli jest przycisk odświeżania. Przycisk można włączyć w następujący sposób:
źródło
Właściwie są różne:
$('#GridName').data('kendoGrid').dataSource.read()
odświeżauid
atrybuty wiersza tabeli$('#GridName').data('kendoGrid').refresh()
pozostawia ten sam uidźródło
Wystarczy, że dodasz zdarzenie .Events (events => events.Sync ("KendoGridRefresh")) w kodzie powiązania kendoGrid. Nie ma potrzeby pisania kodu odświeżającego w wyniku Ajax.
I możesz dodać następującą funkcję Global w dowolnym pliku .js. więc możesz wywołać to dla wszystkich siatek kendo w twoim projekcie, aby odświeżyć kendoGrid.
źródło
W moim przypadku za każdym razem miałem niestandardowy adres URL; chociaż schemat wyniku pozostałby ten sam.
Użyłem następujących:
źródło
Możesz użyć poniższych linii
Aby uzyskać informacje na temat funkcji automatycznego odświeżania, zajrzyj tutaj
źródło
Używając poniższego kodu, automatycznie wywołała metodę odczytu siatki i ponownie wypełniła siatkę
źródło
Alternatywnym sposobem ponownego załadowania siatki jest
źródło
Zawsze możesz użyć
$('#GridName').data('kendoGrid').dataSource.read();
. Naprawdę nie musisz.refresh();
tego.dataSource.read();
robić, załatwi sprawę.Teraz, jeśli chcesz odświeżyć swoją siatkę w bardziej kątowy sposób, możesz:
LUB
I nie zapomnij zadeklarować swoje źródło danych jako
kendo.data.DataSource
typźródło
Użyłem Jquery .ajax do uzyskania danych. Aby ponownie załadować dane do bieżącej siatki, muszę wykonać następujące czynności:
źródło
Chcę wrócić do strony 1, kiedy odświeżę siatkę. Samo wywołanie funkcji read () pozostawi Cię na bieżącej stronie, nawet jeśli nowe wyniki nie mają tylu stron. Wywołanie .page (1) w źródle danych spowoduje odświeżenie źródła danych ORAZ powrót do strony 1, ale zakończy się niepowodzeniem w przypadku siatek, których nie można stronicować. Ta funkcja obsługuje oba:
źródło
Aby wykonać pełne odświeżenie, w którym siatka zostanie ponownie wyrenderowana wraz z nowym żądaniem odczytu, możesz wykonać następujące czynności:
Gdzie nieruchomość może być dowolną własnością, np. Sortowalną
źródło
Po prostu napisz poniższy kod
źródło
źródło
Możesz spróbować:
źródło
Jeśli chcesz, aby siatka była automatycznie odświeżana w określonym czasie, możesz użyć następującego przykładu, w którym interwał jest ustawiony na 30 sekund:
źródło
Domyślna / zaktualizowana konfiguracja / dane widgetów są ustawione tak, aby automatycznie wiązały się z powiązanymi źródłami danych.
źródło
refresh
Możesz także odświeżyć swoją siatkę, wysyłając nowe parametry do akcji Czytaj i ustawiając strony na to, co lubisz:
W tym przykładzie akcja read siatki jest wywoływana przez wartość 2 parametrów i po uzyskaniu wyniku stronicowanie siatki jest na stronie 1.
źródło
Najłatwiejszym sposobem odświeżenia jest użycie funkcji refresh (). Który idzie jak:
podczas gdy możesz również odświeżyć źródło danych za pomocą tego polecenia:
Ten ostatni faktycznie przeładowuje źródło danych siatki. Korzystanie z obu można wykonać w zależności od potrzeb i wymagań.
źródło
źródło
dataSource.read()