«

easyui添加合计列

发布于 阅读:97 HTML


$('#aa').datagrid({
idField:'id',
remoteSort:true,
pagination:true,
showFooter: true,
ctrlSelect: true,
columns:[[
{field:'name',title:'名字',width:120,align:'center',sortable:true},
{field:'number',title:'数量',width:120,align:'center',sortable:true}
]],
onLoadSuccess:function(data){
$("#aa").datagrid('resize');
$("#aa").datagrid('reloadFooter',[{name:'合计',number:data.inNumber}]);
},
})

自动计算代码:

function addfooter(data,fieldlist,fname){
var row = data.rows;//alert("长度:"+fieldlist.length)
if(fieldlist!=null&&fieldlist.length>0){
var t = new Array();
for(var k=0;k<fieldlist.length;k++){
t[k] = 0;
}
//alert(JSON.stringify(t))
for(var i=0;i<row.length;i++){
for(var v =0;v<fieldlist.length;v++){
var digit = eval('row['+i+'].'+fieldlist[v]);
t[v] = parseFloat(t[v])+parseFloat(digit)
}
}
//alert('计算后'+JSON.stringify(t))
var map = {};
for(var v =0;v<fieldlist.length;v++){
var str = 'map.'+fieldlist[v]+'="'+t[v]+'"'
eval(str)
}
if(fname!=null&&fname!=''){
var str2 = 'map.'+fname+'="合计"';
eval(str2)
}
data.footer = JSON.parse('['+JSON.stringify(map)+']')
}
}

HTML JS