今天做了个JqGrid本页合计+总合计(统计)的功能,有点吃力,所以在这里汇总纪录一下:
1、先看看效果,页面如下
2、要实现本页合计+总合计,首先需要添加如下代码:
代码如下:
formatPerson: function(cellValue, options, rowObject) { return cellValue+"+"+rowObject.tourGroup.totalChild+"+"+rowObject.tourGroup.totalGuide; }, 然后在添加如下的属性和处理代码: footerrow: true,//分页上添加一行,用于显示统计信息 //处理合计 var GroupList = xhr.result; groupGrid.getPageFooterTotal(GroupList); 如下图所示:3、上面合计处理事件getPageFooterTotal的实现如下:
4、若是不存在对象中包含对象,单对象可以这样来做:
getPageFooter: function(totalRow){ var pageObj = {sumTotal:0,pAdult:0, pChild:0, pGuide:0}; $.each(totalRow, function(i,item){ pageObj.sumTotal += parseFloat(item.total); pageObj.pAdult += parseInt(item.numAdult); pageObj.pChild += parseInt(item.numChild); pageObj.pGuide += parseInt(item.numGuide); }); var options = { url:"taobaoOrderList_PostFooter.do", type:"post", dataType:"json", success:function(data){ $("tr.footRow2").remove(); var $footerRow = $("tr.footrow"); $footerRow.after("<tr role='row' class='footrow footRow2 footrow-ltr ui-widget-content'>"+$footerRow.html()+"</tr>"); var $newFooterRow = $("tr.footRow2"); $("#tableDiv").footerData("set",{buyerNick:"页合计:" ,numAdult:pageObj.pAdult+"+"+pageObj.pChild+"+"+pageObj.pGuide, total:pageObj.sumTotal}); if (data == null || data == 'null'){ data = {incomeOrder:0,incomeOther:0,incomeShop:0,expenseTravelagency:0,expenseHotel:0,expenseRestaurant:0,expenseFleet:0,expenseScenicspot:0,expenseAirticket:0 ,expenseTrainticket:0,expenseInsurance:0,expenseOther:0,totalIncome:0,totalExpense:0,totalProfit:0,profitPerGuest:0, totalAdult:0, totalChild:0, totalGuide:0}; } $newFooterRow.find("td[aria-describedby*='_buyerNick']").text("总合计:"); $newFooterRow.find("td[aria-describedby*='_numAdult']").text(data.numAdult+"+"+data.numChild+"+"+data.numGuide); $newFooterRow.find("td[aria-describedby*='_total']").text(data.total); //$("tr.footrow").find("td").attr("class", "jqGridFooterBg"); }, error:function(XMLHttpRequest, textStatus, errorThrown){ $.error(textStatus+':'+errorThrown); } }; $("#specialGroupListForm").ajaxSubmit(options); }