繁体   English   中英

Slickgrid:如何从分组中排除行。 或者如何添加所有分组的总计行

[英]Slickgrid: How to exclude a row from grouping. Or how do I add grandtotal row of all grouping

示例: http//mleibman.github.io/SlickGrid/examples/example-grouping

此示例仅在每个分组级别提供总计,我想获取所有分组的总计。

如果我将总计添加为新行,它也会被分组,我想排除它。 有没有可用的选项?

我在类似的问题下面做了。

   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);
}

希望对您有帮助

要控制数据聚合的行为,您必须实现自己的聚合器。 可以在slick.dataview.js的源代码中看到一组内置的聚合器。

如果使用的是这些默认实现之一,则可以通过声明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
 }]);

小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM