(一)代码及合并调用方法,项目代码,可用
<script type="text/javascript">
$(document).ready(function () {
$("#jqGrid").jqGrid({
url: '${ctx}/marketingPlan/getExecuteMarketingPlanPacking',
styleUI: 'Bootstrap',
editurl: 'clientArray',
datatype: "json",
rownumbers: true,
colNames: ['Id', '方案名称', '方案内容', '匹配企业', '接受状态','是否执行'],
colModel: [
{name: 'id', index: 'id', width: '30px', hidden: true,key:true},
{name: 'marketingPlanTitle', index: 'marketingPlanTitle', width: '50px',
cellattr: function(rowId) {
//合并单元格,为单元格赋id
return 'id=\'marketingPlanTitle' + rowId + "\'";
}},
{name: 'marketingPlanContent', index: 'marketingPlanContent', width: '80px',
cellattr: function(rowId) {
//合并单元格
return 'id=\'marketingPlanContent' + rowId + "\'";
}},
}
],
rowNum: 15,
rowList : [ 20, 15,30 ],
height: $(window).height,
autowidth: true,
pager: "#jqGridPager",
altRows: true,
hidegrid: false,
viewrecords: true,
recordpos: 'left',
loadonce: true,
multiselect: false,
loadComplete: function () {
},
jsonReader: {
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: false,
cell: "cell",
id: "id"
},
gridComplete: function () {
//表格加载完成后调用方法
var gridName = "jqGrid";
Merger(gridName, 'marketingPlanTitle');
Merger(gridName, 'marketingPlanContent');
},
});
$('#jqGrid').jqGrid('navGrid', '#jqGridPager', {
refresh: false,
edit: false,
add: false,
del: false,
search: false,
position: "right"
})
});
//单元格行合并方法
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++) {
console.log("length==========="+length);
//和上边的信息对比 如果值一样就合并行数+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);
}
}
}
</script>