3

我有一个可观察的对象,它定义了一个指向绑定到网格的数据源的指针,以及一个应该返回我在数据源中声明的聚合值的自定义字段。

我想将第二个字段(“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>
4

2 回答 2

2

我之前的回答并不完全正确:它将模型更新绑定到网格更改(在每一行选择上)。最好将其绑定到数据源的“更改”事件:

=== 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>
于 2012-12-11T16:30:40.963 回答
0

到目前为止,我找到了一个类似于我之前的帖子的解决方案(将 HTML 元素绑定到网格选定的行/数据项),在绑定到数据源的网格的“更改”事件中设置值:

=== 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>
于 2012-12-11T12:46:26.183 回答