2

在 slickgrid 中,我放了一个总聚合器总和。它总结了该列中的所有行(百分比)并且工作正常。但现在我面临着我只想从活跃百分比中获取总数。活动列是包含 0 或 1 的其他列。

在列定义中:

{id: "percent", name: "Percent", field: "percent", minWidth: 60, sortable: true, groupTotalsFormatter: sumTotalsFormatter, editor: Slick.Editors.Text}

function sumTotalsFormatter(totals, columnDef, id) 
{
  return "Total: " + Math.round(totals.sum[columnDef.field]) + "%";
}

聚合器:

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

我一直在尝试不同的方法但没有成功(放置一个不显示的第二个字段来仅存储活动数据,搜索如何修改聚合器..等)。任何的想法?

4

1 回答 1

1

(在问题编辑中回答。转换为社区 wiki 答案。请参阅将问题的答案添加到问题本身时的适当操作是什么?

OP写道:

好吧,我解决了在 Firebug 中爬行并重新测试了几次。这是我的解决方案:

function sumTotalsFormatter(totals, columnDef) 
{
  var suma      = 0;
  //current group...
  var groupo    = totals.group.value;
  for (var i=0; i<data.length; i++)
  {
    if(data[i].active == '1')
    {
//data[i].us is the one who makes the groups...
        if(groupo == 1 && data[i].us == '1')
        {
            suma += parseInt(data[i].percent);
        }
        else if(groupo == 0 && data[i].us == '0')
        {
            suma += parseInt(data[i].percent);
        }
    }   
  }
  return "Total: " + suma + "%"; 
}
于 2015-02-07T22:13:01.000 回答