在做报表数据时经常需要添加合计行,Ext自带的gridpannel对合计支持得不好,我们通常会自定义JS函数来统计或者通过服务器统计好然后传到客户端,下面我们就来看看如何使用JS来做grid的统计行:
Ext.define('Revenue', {
extend: 'Ext.data.Model',
fields: ['key',{name:'publishdate'},'name','subname','modelname', 'successpaycount']
});
function gridSum(grid)
{
var sum1 = 0;
var sum2 = 0;
var sum3 = 0;
var sum4 = 0;
var sum5 = 0;
grid.store.each(function(record){
sum1 += Number(record.data.abc);
});
var p = Ext.create('Revenue',{
key:'',
publishdate:'',
name:'',
subname:'',
modelname:'合计:',
successpaycount:sum1
});
//grid.store.insert(0, p);// 插入到当前页的第一行
if(grid.getStore().getCount()>0){
grid.store.insert(grid.getStore().getCount(), p); //插入到当前页的最后一行,函数 grid.getStore().getCount()用来获得当前页的记录行数
}
}
紧接着需要定义何时执行该统计函数,只需要在初始化结束后加上下面的内容就OK 了
me.grid.getStore().on('load', function() {
gridSum(me.grid);//
});