gpt4 book ai didi

events - 剑道 UI 数据源更改事件 : is it working?

转载 作者:行者123 更新时间:2023-12-04 02:25:24 26 4
gpt4 key购买 nike

dataSource.changed 事件是否有效?

实例化我的 Kendo UI 网格后,我将按照此处的文档绑定(bind)更改事件:

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 已被替换为不同的事件)将是网格级事件,而不是数据源级事件,对吗?

最佳答案

需要注意的重要一点是支持 DataSource 的数据是 ObservableArray ,并且该数组中的数据项被转换为 ObservableObject s。
change数据源的事件在 2 个条件下触发:

  • 数据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;我实际上不确定这是否会或应该触发改变。我从来没有尝试过。

    关于events - 剑道 UI 数据源更改事件 : is it working?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13893175/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com