版权声明:本文为博主原创文章,欢迎转载,但请注明作者及文章出处,博文有什么不正之处欢迎指正。https://me.csdn.net/weixin_43239106
单元格合并几种情况,有什么其他情况,以此类推
//装载表格
function loadGrid() {
$("#grid").jqGrid({
url : "",
height : document.body.clientHeight - 130,
colModel : [{
label : '',
name : 'fileId',
index : 'fileId',
width : 120,
hidden:true
}, {
label : '单位id',
name : 'orgId',
index : 'orgId',
width : 120,
hidden:true
}, {
label : '单位名称',
name : 'orgName',
index : 'orgName',
width : 100,
cellattr:function(rowId,tv,rawObject,cm,rdate){ //①给当前单元格设置id
return 'id=\'orgName'+rowId+"\'";**// 第一种,单条件的合并**
}
}, {
label : '附件数量',
name : 'total_fileCount',
index : 'total_fileCount',
width : 80,
cellattr:function(rowId,tv,rawObject,cm,rdate){
return 'id=\'total_fileCount'+rowId+"\'";**// 第二种,依附其他属性字段合并**
}
}, {
label : '附件大小(M)',
name : 'total_fileSize',
index : 'total_fileSize',
width : 80 ,
cellattr:function(rowId,tv,rawObject,cm,rdate){
return 'id=\'total_fileSize'+rowId+"\'";**// 第三种,依附以自己属性和其他属性字段合并 }
}],
gridComplete: function() {
//②在gridComplete调用合并方法
var gridName = "grid";
Merger(gridName, 'orgName');//第一种合并
Merger2(gridName,'orgid','total_fileCount');//第二种合并
Merger3(gridName,'orgid',fileId,'total_fileSize');//第三种合并
},
rowNum :"all"
})
}
//调用方法
//第一种合并行
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]);
if (before[CellName] == end[CellName]) {
rowSpanTaxCount++;
$("#" + gridName + "").setCell(mya[j], CellName, '', { display: 'none' });
} else {
rowSpanTaxCount = 1;
break;
}
$("#" + CellName + "" + mya[i] + "").attr("rowspan", rowSpanTaxCount);
$("#" + CellName + "" + mya[i] + "").css("vertical-align", "middle");//字体居中显示
}
}
}
//第二种合并行
function Merger2(gridName, CellName,CellName2){
//得到显示到界面的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]);
if (before[CellName] == end[CellName]) {
rowSpanTaxCount++;
$("#" + gridName + "").setCell(mya[j], CellName2, '', { display: 'none' });
} else {
rowSpanTaxCount = 1;
break;
}
$("#" + CellName2 + "" + mya[i] + "").attr("rowspan", rowSpanTaxCount);
$("#" + CellName2 + "" + mya[i] + "").css("vertical-align", "middle");
}
}
}
//第三种合并
function Merger3(gridName, CellName,CellName2,CellName3){
//得到显示到界面的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]);
if (before[CellName] == end[CellName] && before[CellName2] == end[CellName2]) {
rowSpanTaxCount++;
$("#" + gridName + "").setCell(mya[j], CellName3, '', { display: 'none' });
} else {
rowSpanTaxCount = 1;
break;
}
$("#" + CellName3 + "" + mya[i] + "").attr("rowspan", rowSpanTaxCount);
$("#" + CellName3 + "" + mya[i] + "").css("vertical-align", "middle");
}
}
}