2013-01-15 40 views
2

在slickgrid中,我放了一個總聚合器總和。它彙總了該列中的所有行(百分比)並正常工作。 但現在我面對的是,我只想從活躍的百分比中獲得總數。列有效是包含0或1。slickgrid總數

在列定義另一列:

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

我一直在嘗試不同的方式,但沒有成功(把非顯示第二個字段只存儲活動數據,搜索如何修改agreggator ..等)。任何想法?

+1

請將您的解決方案移出自己的答案。其他人仍然可以嘗試一種不同的方法,你會發現有用的! – Edward

回答

1

(。在一個問題回答的編輯轉換爲一個社區維基答案見What is the appropriate action when the answer to a question is added to the question itself?

的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 + "%"; 
}