jQuery(function($){
var TempGrid = $.extend(true,{},BaseJqGrid,{
resizeHandle:"#searchForm",
pager: "#pager", //分页工具栏
url: _path + '/.html?doType=query', //这是Action的请求地址
multiselect : false,
colModel:[
{label:'选择',name:'sel',index:'sel',width:'60px',align:'center',sortable:false,
formatter:function(cellvalue, options, rowObject){
return '<input type="checkbox" name="checkId" value="' + rowObject.njdm_id + "_" + rowObject.zyh_id +'" />';
},
cellattr: function(rowId, tv, rawObject, cm, rdata) {
return 'id=\'sel' + rowId + "\'value=\'njdm_id_zyh_id"+rawObject.njdm_id+rawObject.zyh_id+"\' temp=\'"+rawObject.zyh_id+"\'";
}
},
{label:'年级',name:'njmc', index:'njmc',align:'center',width:'150px',sortable:false,
cellattr: function(rowId, tv, rawObject, cm, rdata) {
return 'id=\'njmc' + rowId + "\'value=\'njmc"+rawObject.njdm_id+rawObject.zyh_id+rawObject.njmc+"\'temp=\'"+rawObject.njmc+"\'";
}
},
{label:'专业代码',name:'zydm', index:'zydm',align:'center',width:'150px',sortable:false,
cellattr: function(rowId, tv, rawObject, cm, rdata) {
return 'id=\'zydm' + rowId + "\'value=\'zydm"+rawObject.njdm_id+rawObject.zyh_id+rawObject.zydm+"\'temp=\'"+rawObject.zydm+"\'";
}
},
],
sortname: 'njdm_id,zyh_id,sqzyh_id', //首次加载要进行排序的字段
sortorder: 'asc',
gridComplete: function() {
Merger2("tabGrid", 'sel');
Merger2("tabGrid", 'njmc');
Merger2("tabGrid", 'zydm');
}
});
$("#tabGrid").loadJqGrid(TempGrid);
bdan();
});
//单元格合并公共调用方法
function Merger2(gridName, CellName) {
//得到显示到界面的id集合
var mya = jQuery("#" + gridName + "").getDataIDs();
//当前显示多少条
var length = mya.length;
for (var i = 0; i < length; i++) {
//从上到下获取一条信息
var before = jQuery("#" + CellName + "" + mya[i] + "").attr("value");
//定义合并行数
var rowSpanTaxCount = 1;
for (j = i + 1; j <= length; j++) {
//和上边的信息对比 如果值一样就合并行数+1 然后设置rowspan 让当前单元格隐藏
var end = jQuery("#" + CellName + "" + mya[j] + "").attr("value");
if(CellName=='sel'||CellName=='njmc'||CellName=='zydm'||CellName=="zymc")
{
var endTemp = jQuery("#" + CellName + "" + mya[j] + "").attr("temp");
if(endTemp=='null'||endTemp=='undefined')
{
end=before;
}
}
if (before == end) {
rowSpanTaxCount++;
jQuery("#" + gridName + "").setCell(mya[j], CellName, '', { display: 'none' });
} else {
rowSpanTaxCount = 1;
break;
}
jQuery("#" + CellName + "" + mya[i] + "").attr("rowspan", rowSpanTaxCount);
}
}
}
}
使用jqGrid 合并单元格的时候 需要注意 如果出现单元格错位等异常情况 可排查 再label 中是否 写入key:true 这个参数了,
这个配置会导致合并单元格 错位的情况