使用SlickGrid聚合/列的总和

时间:2012-06-08 14:56:20

标签: sum slickgrid aggregation aggregator

我只是想对一列进行求和,并在表格的底部显示总数。从查看示例看,使用聚合器似乎是最好的方法。但是,当我只是添加

dataView.setAggregators([ new Slick.Data.Aggregators.Sum("value") ], false);

没有任何反应。我已经尝试了几个小时来让一个简单的聚合器基于分组示例工作,但分组示例太复杂了,我无法准确地告诉我需要什么。

编辑:替代修复: 对于其他任何人,我最终没有使用聚合器。这些数据在Javascript中可用,这使得生活变得更加容易。总计可以从那里计算出来。

1 个答案:

答案 0 :(得分:4)

首先请注意,显示总作品仅适用于小计(您所拥有的小组的总分),我不相信大总计尚未实施...虽然如果你确实想要每组的总数,你必须定义3个代码区域,而不仅仅是1个

首先你像以前一样宣布聚合器

dataView.setAggregators([ new Slick.Data.Aggregators.Sum("value") ], false);

第二,你需要将它(一个要显示的功能)附加到你的专栏以及groupTotalsFormatter

var columns = [
  ...
  {id: "cost", name: "Cost", field: "cost", width: 90, sortable: true, groupTotalsFormatter: sumTotalsFormatter}
];

最后定义显示它的函数并用你想要显示的内容对其进行编码

function sumTotalsFormatter(totals, columnDef) {
  var val = totals.sum && totals.sum[columnDef.field];
  if (val != null) {
    return "total: " + val;
  }
  return "";
}

如果您遗漏了这些行中的任何一行,您将看不到任何显示的内容,这是正常的