Tim*_*Tim 5 grid events datasource kendo-ui
dataSource.changed事件是否有效?
在我的Kendo UI网格实例化后,我按照文档绑定更改事件:
http://docs.kendoui.com/api/framework/datasource#change
//To set after initialization
dataSource.bind("change", function(e) {
// handle event
});
Run Code Online (Sandbox Code Playgroud)
我这样做:
// 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();
}
Run Code Online (Sandbox Code Playgroud)
但是当我执行以下任一操作时,我的dataChanged()函数不会被调用:
var grid = $('#grid').data('kendoGrid');
grid.dataSource.data()[1]["deptname"] = 'XXX';
Run Code Online (Sandbox Code Playgroud)
要么
grid.dataSource.data = aDifferentArray;
Run Code Online (Sandbox Code Playgroud)
我不确定'改变'事件到底在听什么.究竟应该触发它的是什么?
如果我创建一个全新的dataSource,并将其分配给已有dataSource的网格,我不会看到它将如何触发现有数据源的更改事件.这样的事件(网格注意到它的dataSource已经被另一个替换)将是一个网格级事件,而不是一个dataSource级事件,对吗?
需要注意的重要一点是,支持的数据DataSource是a ObservableArray,并且该数组中的数据项将转换为ObservableObjects.
change在两个条件下触发数据源的事件:
数据ObservableArray更改(插入,删除记录).一个例子是使用DataSource.add()或DataSource.remove()函数.
如果属性更改了事件,则会从ObservableData阵列中的一个对象冒泡到DataSource .但是,就像Kendo MVVM框架的其余部分一样,属性更改的通知仅在.set("propertyName", value)调用其函数时发生.
这就是为什么grid.dataSource.data()[1]["deptname"] = 'XXX';不触发更改事件.如果你把它改成:grid.dataSource.data()[1].set("deptname", 'XXX');那么它应该开始工作.基本上,将change事件视为响应从data可观察对象触发的MVVM属性更改而被触发.
至于更改数据数组,grid.dataSource.data = aDifferentArray;我实际上不确定是否会触发更改.我从来没有尝试过.
| 归档时间: |
|
| 查看次数: |
21698 次 |
| 最近记录: |