实施例: http://mleibman.github.io/SlickGrid/examples/example-grouping
这个示例仅在每个分组级别给出总计,我希望得到所有分组的总数。
如果我将总计添加为新行,它也会被分组,我想将其排除。 有没有可用的选项?
答案 0 :(得分:1)
我在下面的类似问题中做过。
function filter(item) {
if (item["YourTotalColumnName"]) {
if (item["YourTotalColumnName"] == 'YOUR TOTAL WORD') {
return false;
}
}
return true;
}
function filterClear(item) {
return true;
}
当你分组并清除分组时,你可以这样做:
function groupBySomeColumn() {
dataView.setFilter(filter);
...
...
}
function clearGrouping() {
dataView.setGrouping([]);
dataView.setFilter(filterClear);
}
我希望这可以帮到你
答案 1 :(得分:0)
要控制数据聚合的行为,您必须实现自己的聚合器。可以在slick.dataview.js的源代码中看到内置聚合器集。
如果您正在使用其中一个默认实现,则可以" hack"通过声明2级数据分组的解决方案,最外层是在每个数据条目具有相同值的垃圾数据列上。我不建议采取这种方式,但想说明它是"是"可能没有完全自定义的实现。
dataView.setGrouping([
{
getter: "myJunkColumn",
formatter: function (g) {
return "";
},
aggregators: [ new Slick.Data.Aggregators.Sum("data") ],
aggregateCollapsed: false,
lazyTotalsCalculation: true
},
{
getter: "year",
formatter: function (g) {
return "Year(s): " + g.value + " <span style='color:green'>(" + g.count + " items) </span>";
},
aggregators: [ new Slick.Data.Aggregators.Sum("data") ],
aggregateCollapsed: false,
lazyTotalsCalculation: true
}]);