Czy zdarzenie dataSource.changed działa?Dane zmiennego źródła danych Kendo: czy działa?
Po moja siatka Kendo UI jest tworzony, jestem wiążące zdarzenie zmianie na dokumentacji tutaj:
http://docs.kendoui.com/api/framework/datasource#change
//To set after initialization
dataSource.bind("change", function(e) {
// handle event
});
robie to:
// initialize
$("#grid").kendoGrid({
dataSource: dataSource,
blah blah blah
)
});
// end of initialization
// bind afterwards
var grid = $('#grid').data('kendoGrid');
grid.dataSource.bind("change", function (e) {
dataChanged();
});
//also tried a setTimeout:
// bind afterwards
setTimeout(function() {
var grid = $('#grid').data('kendoGrid');
grid.dataSource.bind("change", function (e) {
dataChanged();
});
}, 350);
function dataChanged() {
// handle "change" whatever that means -- documentation definition is hazy
// does reassigning the data array constitute a change?
// does changing the value of a particular item in the data array
// constitute a change?
// does removing an item from the data array constitute a change?
var grid = $("#grid").data("kendoGrid");
grid.refresh();
}
ale mój dataChanged Funkcja() nie jest wywoływana, gdy wykonuję jedną z poniższych czynności:
var grid = $('#grid').data('kendoGrid');
grid.dataSource.data()[1]["deptname"] = 'XXX';
lub
grid.dataSource.data = aDifferentArray;
Nie jestem pewien, co dokładnie „zmienił” zdarzenie nasłuchuje. Co dokładnie ma go uruchomić?
Jeśli utworzę zupełnie nowe źródło danych i przypisze je do siatki, która już ma źródło danych, nie widzę sposobu, w jaki mogłoby to spowodować zmianę zdarzenia istniejącego źródła danych. Takie zdarzenie (siatka zauważająca, że jego źródło danych zostało zamienione na inne) byłoby zdarzeniem na poziomie siatki, a nie zdarzeniem na poziomie źródła danych, prawda?
dziękuję za wyjaśnienie. Metoda '.set' wywołuje zdarzenie change, podczas gdy' grid.dataSource.data = aDifferentArray', o ile wiem. Mam nadzieję, że nie jest w Kendo siatki odpowiednikiem imprezy DataSource_Changed w WinForms siatek - zwolniony, gdy siatka jest przypisany inny źródło danych, ponieważ mam nadzieję, aby odświeżyć siatkę z nowych danych co 60 sekund: http://stackoverflow.com/ pytania/13892021 /-każdy-60 kendo-ui-grid-orzeźwiający-grid-data-sekundy-with-new-danych DataSource-a/13.892.541 # comment19140263_13892541 – Tim
Właściwie, aby zamienić się dane, myślę użyć ' .data() 'funkcja: http: //docs.kendoui.com/api/framework/datasource # data, więc Twój kod będzie miał postać 'grid.dataSource.data (aDifferentArray);' – CodingWithSpike
excellent! Dziękuję bardzo. – Tim