dataSource.changed 事件是否有效?
实例化我的 Kendo UI 网格后,我将按照此处的文档绑定更改事件:
http://docs.kendoui.com/api/framework/datasource#change
//To set after initialization
dataSource.bind("change", function(e) {
// handle event
});
我正在这样做:
// 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();
}
但是当我执行以下任一操作时,不会调用我的 dataChanged() 函数:
var grid = $('#grid').data('kendoGrid');
grid.dataSource.data()[1]["deptname"] = 'XXX';
或者
grid.dataSource.data = aDifferentArray;
我不确定“更改”事件到底在听什么。究竟是什么应该触发它?
如果我创建一个全新的数据源,并将其分配给已有数据源的网格,我看不出这将如何触发现有数据源的更改事件。这样的事件(网格注意到其 dataSource 已被替换为不同的事件)将是网格级事件,而不是数据源级事件,对吗?