实现效果:合并同一列相邻且内容相同的单元格。
合并代码:
function Merger(gridName, CellName) { //得到显示到界面的id集合 var mya = $("#" + gridName + "").getDataIDs(); //数据总行数 var length = mya.length; //定义合并行数 var rowSpanTaxCount = 1; for (var i = 0; i < length; i += rowSpanTaxCount) { //从当前行开始比对下面的信息 var before = $("#" + gridName + "").jqGrid('getRowData', mya[i]); 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 { break; } } $("#" + gridName + "").setCell(mya[i], CellName, '', '', { rowspan: rowSpanTaxCount }); } }
调用代码:
gridComplete: function (data) { Merger('listname', 'columnname'); }
最终合并了第一列的效果: