Kendo UI dataSource changed event: is it working?
dataSource.changed事件是否正常工作?
实例化我的Kendo UI网格后,我将根据此处的文档绑定更改事件:
http://docs.kendoui.c??om/api/framework/datasource#change
1 2 3 4 | //To set after initialization dataSource.bind("change", function(e) { // handle event }); |
我正在这样做:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | // 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()函数:
1 2 | var grid = $('#grid').data('kendoGrid'); grid.dataSource.data()[1]["deptname"] = 'XXX'; |
或
1 | grid.dataSource.data = aDifferentArray; |
我不确定'changed'事件到底在听什么。究竟应该触发什么?
如果我创建一个全新的dataSource,并将其分配给已经具有dataSource的网格,我看不到它将如何触发现有数据源的change事件。这样的事件(网格通知其dataSource已被另一个事件替代)将是网格级别的事件,而不是dataSource级别的事件,对吗?
要注意的重要一点是,支持
数据源的
数据
如果属性更改,则事件会从数组中的
这就是为什么
关于更改数据数组