2017-10-20 271 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