Sự kiện dataSource.changed có hoạt động không?Dữ liệu giao diện người dùng KendoSự kiện đã thay đổi nguồn: nó có hoạt động không?
Sau lưới Kendo UI của tôi được khởi tạo, tôi đang liên kết các sự kiện thay đổi mỗi tài liệu ở đây:
http://docs.kendoui.com/api/framework/datasource#change
//To set after initialization
dataSource.bind("change", function(e) {
// handle event
});
tôi đang làm điều này:
// 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();
}
Nhưng dataChanged của tôi() chức năng không được gọi khi tôi thực hiện một trong những điều sau:
var grid = $('#grid').data('kendoGrid');
grid.dataSource.data()[1]["deptname"] = 'XXX';
hoặc
grid.dataSource.data = aDifferentArray;
Tôi không chắc chắn chính xác những gì sự kiện 'thay đổi' đang lắng nghe cho. Cái gì, chính xác, là vụ phải kích hoạt nó?
Nếu tôi tạo một nguồn dữ liệu hoàn toàn mới và gán nó vào lưới đã có nguồn dữ liệu, tôi không thấy cách kích hoạt sự kiện đã thay đổi của nguồn dữ liệu hiện tại. Sự kiện như vậy (lưới nhận thấy rằng dataSource của nó đã được thay thế bằng một nguồn dữ liệu khác) sẽ là một sự kiện cấp độ lưới, không phải là một sự kiện cấp dữ liệu, phải không?
cảm ơn bạn đã làm rõ. Phương thức '.set' không kích hoạt sự kiện thay đổi trong khi' grid.dataSource.data = aDifferentArray' không, theo như tôi có thể nói. Tôi hy vọng có trong Kendo lưới tương đương với sự kiện DataSource_Changed trong WinForms lưới - bắn khi lưới được gán một nguồn dữ liệu khác nhau, bởi vì tôi hy vọng sẽ làm mới lưới với dữ liệu mới mỗi 60 giây: http://stackoverflow.com/ câu hỏi/13892021/kendo-ui-lưới-làm mới-lưới-dữ liệu-mỗi-60-giây-với-new-dữ liệu-datasource-a/13892541 # comment19140263_13892541 – Tim
Thực ra, để trao đổi dữ liệu, tôi nghĩ bạn sử dụng ' Hàm .data() ': http: //docs.kendoui.com/api/framework/datasource # data để mã của bạn sẽ là 'grid.dataSource.data (aDifferentArray);' – CodingWithSpike
tuyệt vời! Cảm ơn rất nhiều. – Tim