对网上合并的通用方法进行修改
jqgrid 初始化
$("#jqGrid").jqGrid({
url: '/weixin/weixin/dayDetail',
datatype: "json",
colModel: [
{ label: '日期', name: 'date_tally', width: 80, sortable: true,
cellattr:function(rowId, tv, rawObject, cm, rdata) {
return 'id=\'date_tally' + rowId + "\'";
}},
{ label: '作业类型', name: 'tasktype', width: 80, sortable: true,
cellattr:function(rowId, tv, rawObject, cm, rdata) {
return 'id=\'tasktype' + rowId + "\'";
}},
{ label: '作业地点', name: 'to_type', width: 80, sortable: true},
{ label: '车数', name: 'taskSumCount', width: 90 ,sortable:false},
],
postData:{'startTime': start, 'endTime': end},
viewrecords: true,
height: 400,
rowNum: 30,
rowList : [10,30,50,100,200],
rownumbers: true,
rownumWidth: 50,
autowidth:true,
multiselect: false,
shrinkToFit:false,
autoScroll: true,
pager: "#jqGridPager",
footerrow:true,
jsonReader : {
root: "page.list",
page: "page.currPage",
total: "page.totalPage",
records: "page.totalCount"
},
prmNames : {
page:"page",
rows:"limit",
order: "order"
},
gridComplete:function(){
var gridName = 'jqGrid';
Merger(gridName,'date_tally');
Merger(gridName,'date_tally,tasktype');
$.ajax({
type: "POST",
url: '/weixin/weixin/stateEmpty',
contentType: 'application/json',
success: function(r){
if(r.code == 0){
var list = r.list;
// var total=JSON.parse(r.totalInfo);
$("#jqGrid").footerData('set', {'date_tally':"在港"+list[0].state_empty, 'tasktype': list[0].cnt,
'to_type':"在港"+list[1].state_empty, 'taskSumCount': list[1].cnt});
}
}
});
}
});```
js调用方法
cellName是数组,长度为1时 根据cellName[0]合并,
长度为2时,根据比较cellName[0]是否相同后在对cellName[1]进行比较合并
function Merger(gridName, CellName) {
//得到显示到界面的id集合
var mya = $("#" + gridName + "").getDataIDs();
//当前显示多少条
var length = mya.length;
for (var i = 0; i < length; i++) {
//从上到下获取一条信息
var before = $("#" + gridName + "").jqGrid('getRowData', mya[i]);
//定义合并行数
var rowSpanTaxCount = 1;
for (j = i + 1; j <= length; j++) {
//和上边的信息对比 如果值一样就合并行数+1 然后设置rowspan 让当前单元格隐藏
var end = $("#" + gridName + "").jqGrid('getRowData', mya[j]);
var cellNames = CellName.split(",");
if(cellNames.length == 1){
if (before[cellNames[0]] == end[cellNames[0]] ) {
rowSpanTaxCount++;
$("#" + gridName + "").setCell(mya[j], cellNames[0], '', { display: 'none' });
} else {
rowSpanTaxCount = 1;
break;
}
$("#" + cellNames[0] + "" + mya[i] + "").attr("rowspan", rowSpanTaxCount);//最后合并需要合并的行与合并的行数
$("#" + cellNames[0] + "" + mya[i] + "").css("vertical-align","middle");
}else{
if (before[cellNames[0]] == end[cellNames[0]] ) {
if(before[cellNames[1]] == end[cellNames[1]]){
rowSpanTaxCount++;
$("#" + gridName + "").setCell(mya[j], cellNames[1], '', { display: 'none' });
}else{
rowSpanTaxCount = 1;
break;
}
} else {
rowSpanTaxCount = 1;
break;
}
$("#" + cellNames[1] + "" + mya[i] + "").attr("rowspan", rowSpanTaxCount);//最后合并需要合并的行与合并的行数
$("#" + cellNames[1] + "" + mya[i] + "").css("vertical-align","middle");
}
}
}
}
效果图