2017-10-20 227 views
0

我在jqgrid,ShopID和NetSales中有两列,我想添加Contribution Column这将是一个计算列。该公式是NetSales除以Total。例如,请参阅图像。 enter image description here如何获得jqgrid列的总和

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

+1

哪个'datatype'有网格?我建议你不要使用计算列。计算直接拥有数据的总和非常简单。有了总和,您可以根据列中的总和和NetSales填充“贡献”列的数据。 – Oleg

+0

@ Oleg,我有本地数据类型先生。 – davidb

回答

2

通常你有如前所述到您应该计算在列的总和来把数据放到网格之前的说明两种方式来解决这个问题

  1. 。如果你有这个值,你可以使用自定义的fomatter来计算百分比。在这种情况下,计算出的总和应该在范围内定义为全局。

  2. 这种直接计算,而无需使用任何jqGrid的方法 - 见下文

假设你有一个像这样

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中的情​​况下直接做任何计算和u自定义格式化程序以显示百分比。

+0

非常感谢你的先生,我现在正在尝试这种方法,很快就会更新。 – davidb

+0

我按照您的示例应用了第二种方法先生,并且正在工作,感谢您。 – davidb