如何获取jqgrid中列的总和

时间:2017-10-20 18:26:47

标签: jqgrid

我在jqgrid,ShopID和NetSales中有两列,我想添加Contribution Column这将是一个计算列。公式是NetSales除以Total。请参见图片。enter image description here

我知道如何使用getCol这样的var sumtotal = grid.jqGrid('getCol', 'NetSales', false, 'sum');获取总计,但不知道如何进一步使用它进行划分。我试过了,但它没有用。请帮忙。

1 个答案:

答案 0 :(得分:2)

通常,您有两种方法来解决问题

  1. 如前所述,您应该在将数据放入网格之前计算列的总和。如果您有此值,则可以使用自定义fomatter来计算百分比。在这种情况下,计算的总和应该在范围内定义为全局。

  2. 不使用任何jqGrid方法直接计算它 - 见下文

  3. 假设您有这样的本地数据

    mydata = [ 
       {ShipId: 1, NetSales: 150000},
       {ShipId: 2, NetSales: 200000},
       ...
    ]
    

    你可以轻松做到(没有检查只是想法)

    var sum  = 0;
    $.each(mydata, function( i, row) {
        sum += parseFloat(row.NetSales);
    }
    $.each(mydata, function( i, row) {
        if (sum > 0 ) {
            row.Contribution = parseFloat(row.NetSales)/sum*100;
        }
    }
    

    然后直接将mydata放在jqGrid中而不进行任何计算,并使用自定义格式化程序来显示百分比。