我有一个可观察对象,它定义了一个指向绑定到网格的数据源的指针,以及一个自定义字段,它应该返回我在数据源中声明的聚合值。
我想将第二个字段(“totAmount”)绑定到自定义HTML元素。
我不明白如何更新它的值:当我调用数据源的“read()”方法时,不应该在接口上更新绑定值吗?它只适用于“原始”模型字段吗?
=== JAVASCRIPT ===
var vm = kendo.observable({
gridDatasource: new kendo.data.DataSource({ ... }),
totAmount: function() {
var ds = this.get("gridDatasource");
var value = (ds.aggregates()) ? ds.aggregates().totAmount : 0;
return value;
}
});
=== HTML ===
<span data-bind="text: totAmount"></span>
答案 0 :(得分:2)
我以前的回答并不完全正确:它会对网格更改(每行选择)上的模型更新进行绑定。最好将它绑定到数据源的“change”事件:
=== JAVASCRIPT ===
var vm = kendo.observable({
gridDatasource: new kendo.data.DataSource({ ... }),
totAmount: 0
});
vm.gridDatasource.bind("change", function(e) {
vm.set("totAmount", this.aggregates().totAmount);
});
=== HTML ===
<span data-bind="text: totAmount"></span>
答案 1 :(得分:0)
到目前为止,我找到了一个类似于我上一篇文章(bind HTML elements to grid selected row/dataItem)的解决方案,将绑定到数据源的网格的“更改”事件中的值设置为:
=== JAVASCRIPT ===
var vm = kendo.observable({
gridDatasource: new kendo.data.DataSource({ ... }),
totAmount: 0
});
$("#grid").kendoGrid({
change: function(e) {
vm.set("totAmount", this.dataSource.aggregates().totAmount);
}
});
=== HTML ===
<span data-bind="text: totAmount"></span>