easyui 分类统计_基于easyui的列汇总统计

引用的方法

针对我们需要统计的列设置一个sum属性为true

{sortable:true,field : 'packageNum',title : '件数',width : parseInt($(this).width()*0.1),sum : true}

$("#table_id").datagrid({

//设置表格的页脚,方便后续统计的数据存放。

showFooter : true,

//数据加载成功后调用方法

onLoadSuccess : function() {

$('#prepayDetail_dg').datagrid('statistics');

}

});

二、js的实现

$.extend($.fn.datagrid.methods, {

//仿照easyui的表格方法(例:appendRows的方法)

statistics: function (jq) {

//获取表格列

var opt=$(jq).datagrid('options').columns;

//取得表的行

var rows = $(jq).datagrid("getRows");

var footer = new Array();

//定义统计的列有哪些

footer['sum'] = "";

//遍历表格的列,并判断是否存在统计的属性(sum),并把我们需要统计的列提取出来

for(var i=0; i

if(opt[0][i].sum){

footer['sum'] = footer['sum'] + sum(opt[0][i].field)+ ',';

}

}

//定义数组用于接收各列的统计值

var footerObj = new Array();

if(footer['sum'] != ""){

var tmp = '{' + footer['sum'].substring(0,footer['sum'].length - 1) + "}";

var obj = eval('(' + tmp + ')');

if(obj[opt[0][1].field] == undefined){

footer['sum'] += '"' + opt[0][1].field + '":""';

obj = eval('({' + footer['sum'] + '})');

}else{

obj[opt[0][1].field] = "" + obj[opt[0][1].field];

}

footerObj.push(obj);

}

//将我们统计的值加载到页脚行(表格的最后一行)

if(footerObj.length > 0){

$(jq).datagrid('reloadFooter',footerObj);

}

//将需要统计的列的值进行统计计算

function sum(filed){

var sumNum = 0;

for(var i=0;i

sumNum += Number(rows[i][filed]);

}

//组装统计列的值,注:这里的sumNum可以根据你需要的数据,区别我们是否需要保留小数点sumNum.toFixed(2);

return '"' + filed + '":"' + sumNum +'"';

};

}

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值