2013-05-14 50 views
4

我想在網格頁腳中添加總行數。我有整行記錄可在商店中使用。在網格中,用戶選擇降序,總行顯示爲第一行。任何人都可以告訴我如何避免這種情況?如何在網格頁腳中添加總行數extjs

我會解釋我的全部問題:

例如,我有這樣的目標目標1目標2網格視圖從web服務獲得

Month Target Target1 Target2 Target(2-1) Target% 
    jan 500  1000 1001  1   0.99 
    feb 600  2000 2001  1   0.99 

    **total 1100  3000 3002  2   2*3002/100** need to calculate total% like this 

我計算的價值目標(2-1)%目標總價值在商店中並將商店綁定在網格中。所以只有總列也會改變。在網格中,用戶選擇降序,總行也改變。任何人都可以告訴我如何避免這種情況?

謝謝

回答

8

您應該使用網格摘要功能,而不是常規行。 Here是一個小提琴,演示了您的示例中的用法,以及使用自定義summaryType函數爲您的Target%總計實現計算。

這是一個比在商店中做記錄進行彙總計算更好的方法,您不會因排序和過濾而陷入困境。

看看here爲文檔和現場示例。基本上,你需要將功能添加到像格:

Ext.create('Ext.grid.Panel', { 
    ... 
    features: [{ 
     ftype: 'summary' 
    }], 
    ... 

,並添加summaryType配置到你所需要的列,如:

columns: [{ 
    dataIndex: 'name', 
    text: 'Name', 
    summaryType: 'sum', 
... 

這是自定義summaryType的樣子:

dataIndex: 'targetPercent', 
text: 'Target%', 
summaryType: function(records){ 
    var totals = records.reduce(function(sums, record){ 
     return [sums[0] + record.data.target2, 
       sums[1] + record.data.targetDiff]; 
    }, [0,0]); 

    return (totals[0] * totals[1])/100; 
} 
+0

感謝回覆所有的值都從商店上午來分配領域列{文字:「名」,dataIndex:「名」,軟硬度:1},就像是做總row.In總排我有不同的計算每個colu MN。 – mohan 2013-05-15 06:52:22

+0

摘要功能允許根據您使用的summaryType對每列進行不同的計算,如果需要,可以進行更復雜的計算。如果您發佈了jsfiddle,我將能夠向您展示 – 2013-05-15 08:39:32

+0

對不起,沒有閱讀您的問題中的編輯 – 2013-05-15 08:46:28