# 参考
https://blog.csdn.net/li1325169021/article/details/103999233
# 场景
现在有做一个多(行)单元格合并的功能,但是从网上找了好多测试都不行,网上是双层for循环,我没理解为啥,然后就自己写了一个,用法可以参考上面文章的
# 前提
1、要加一个cellattr属性,id的值要唯一
{label: '合同编号', name: 'conCode', index: 'conCode', sortable: false, width: 50,
cellattr: function(rowId) {
return 'id=\'conCode' + rowId + "\'"; //①给当前想合并的单元格设置id
}
},
2、在loadComplete方法中添加调用函数
loadComplete : function(data) {
//合并单元格
Merger('contractJqGrid', 'conCode');
}
# 代码
function Merger(gridName, CellName) {
// $("#conCode04D060FB2676A61CE06011AC06007B6B").attr("rowspan", 12);
// $("#contractJqGrid").setCell("01489A030C895B89E06011AC060066F7", CellName, '', { display: 'none' });
// $("#contractJqGrid").setCell("01489A030C895B89E06011AC060066F7", CellName, '', { display: 'none' });
// $("#conCode01489A030C895B89E06011AC060066F7").attr("rowspan", 2);
//得到显示到界面的id集合
var data = $("#" + gridName + "").getDataIDs();
//当前显示多少条
var length = data.length;
//定义合并行数
var rowSpanTaxCount = 1;
var temp = 1;
var index = '';
for (var i = 0; i < length; i++) {
//从上到下获取一条信息
var before = $("#" + gridName + "").jqGrid('getRowData', data[i]);
var end = $("#" + gridName + "").jqGrid('getRowData', data[i+1]);
if (before[CellName] == end[CellName]) {
rowSpanTaxCount++;
temp = rowSpanTaxCount;
if(index==''){
index = CellName+data[i];
}
$("#contractJqGrid").setCell(data[i+1], CellName, '', { display: 'none' });
$("#"+index).attr("rowspan", temp);
} else {
index='';
rowSpanTaxCount = 1;
}
}
$("#"+index).attr("rowspan", temp);
}
jqgrid合并单元格(亲测有效)
最新推荐文章于 2024-07-15 16:22:12 发布