easyui 添加统计行,分页栏总数

场景如下:

我们在表格中经常添加一行为统计行,统计具体列的相关和,这时候用户在使用的时候,发现有效数据与分页栏中展示的总个数不一致,会造成困惑。

产生原因:easyuigrid一般在表格加载onloadSuccess 函数中以insertRow 或者appendRow 函数来追加统计行

代码如下:

onLoadSuccess:function(data,index){
            var rows = $('#rptDay').datagrid('getRows')//获取当前的数据行
            var txcount = 0//计算txcount的总和    
            for (var i = 0; i < rows.length; i++) {
                txcount += parseFloat(rows[i]['txcount']);
            }
           //新增一行显示统计信息
            //toFixed(2) 精度
           $('#rptDay').datagrid('appendRow', {rptdate:'合计',orgname:'',txcount: txcount.toFixed(2)});
}

那么这时候datagrid分页总数就多了一行,查看源代码如下:

#jquery.datagrid.js中 datagridappendrow方法

appendRow:function(jq,row){
return jq.each(function(){
_18d(this,row);
});


function _18d(_18e,row){
var data=$.data(_18e,"datagrid").data; # 获取加载成功后的数据集合 此时把合计行算入
var view=$.data(_18e,"datagrid").options.view;
var _18f=$.data(_18e,"datagrid").insertedRows;
view.insertRow.call(view,_18e,null,row);
_18f.push(row);
$(_18e).datagrid("getPager").pagination("refresh",{total:data.total});#在此处刷新分页栏中的分页总数
};

由源码中可以得知,在datagrid加载完成后,重新渲染分页栏相关信息,那么此时要把统计行从总分页数中减去则需要在onloadSuccess 函数中添加如下处理:

onLoadSuccess:function(data,index){
            var rows = $('#rptDay').datagrid('getRows')//获取当前的数据行
            #获取统计行追加前的总行数
            var oldRows=parseInt(rows.length);
            var txcount = 0//计算txcount的总和    
            for (var i = 0; i < rows.length; i++) {
                txcount += parseFloat(rows[i]['txcount']);
            }
           //新增一行显示统计信息
            //toFixed(2) 精度
           $('#rptDay').datagrid('appendRow', {rptdate:'合计',orgname:'',txcount: txcount.toFixed(2)});
            #在追加行后重新渲染分页栏
         $('#rptDay').datagrid("getPager").pagination("refresh",{total:oldRows});
}

当然这只是针对个性化需要,不是必要。
 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值