[ExtJs]Grid合計(三)

前言ide

  今天又有朋友給發郵件詢問Grid合計的問題,看的應該是我較早的文章,這裏彙總一下並提供第三種合計的方法。
 spa

 

正文插件

  1、方法一code

    經過修改JsonReader並使用插件GroupSummary,文章:ExtJs Grid 合計 [Ext | GridPanel | GridSummary]blog

 

  2、方法二ip

    先在後臺 (C#服務端)統計好,而後添加DataTable(多返回一行數據),而後序列號成JSON返回給客戶端,文章:ExtJs 備忘錄(7)—— GirdPanl表格(三) [ 統計|查看、修改單行記錄 ]get


  3、方法三it

    3.1  方法說明io

      直接在客戶端統計,動態的修改Grid(js 操做)。function

    3.2  實現代碼

function  GridSum(grid)
{
    
var  sum  =   0 ;
    grid.store.each(
function (record){
        sum 
+=  Number(record.data.money);
    });
    
    
var  n  =  grid.getStore().getCount(); //  得到總行數
     var  p  =   new  Ext.data.Record({
        id: 
' 總計: ' ,
        money:sum
    });
    
    grid.store.insert(n, p);
//  插入到最後一行 
}

// 加載數據
store.load({
    callback: 
function (r,options,success) {
        
if ( ! success)
            alert(
" 數據加載失敗! " );
       GridSum(grid);
    }
});

      代碼說明:

        a).  store爲Ext.data.Store,取數據部分代碼在這裏就省略了;grid是Ext.grid.GridPanel,同上。

        b).  注意GridSum不要寫到load方法以後,不然數據還沒加載完就動態插入一行,會看見閃一下就沒有的現象,必定要注意加載完成後再調用統計的方法。

 

  4、總結和比較
 

    4.1  第一種方法很明顯是最複雜的,基本能夠被淘汰。

    4.2  第二種方法比較不錯,擅長於寫後臺代碼的比較喜歡,雖然麻煩點,可是很是靈活,在分頁的狀況下能統計一頁也能統計因此的數據。

    4.3  第三種方法最簡單,適合統計一頁數據,即務須作分頁的表格。

    4.4  注意這三個版本例子的ExtJs版本號可能不同,第二種應該是最通用的。

 

結束
 

   最好不如最合適來得實際 :)  

相關文章
相關標籤/搜索