我使用Aggregates feature of a Kendo UI Grid Widget来显示分组列的总和。有问题的列绑定到可选字段/属性,因此当数据集包含不存在属性的数据项(即未定义)时,总和最终为NaN,如您所料。
Kendo DataSource calculates these aggregates "when the data source populates with data"但does not include a feature to allow custom aggregates允许我实现一个以0替换未定义值的和的版本。
我可以看到kendo.data.js中定义总和函数的位置,但如果可能的话我宁愿不改变它。
我知道如何通过编写查询$("#myGridId").data("kendoGrid").dataSource
的函数来解决这个问题,但我想知道是否有更好的选择。
答案 0 :(得分:0)
将kendo.data.js中的最新代码与我的项目版本( 2013.1.319 )进行比较后,我发现他们已经更改了sum聚合函数的实现,只是通过执行来处理这种情况如果值是数字,则添加。如果我可以将项目更新到最新版本的Kendo UI,问题就解决了。
以下代码段位于版本2014.1.416的第1369行。
sum: function(accumulator, item, accessor) {
var value = accessor.get(item);
if (!isNumber(accumulator)) {
accumulator = value;
} else if (isNumber(value)) {
accumulator += value;
}
return accumulator;
}