我的方法:
//ligerUI设置表格
function f_setGrid(cloumns){
var cloumns = [
{ name: 'UserName', display: '名称', width:200},
{ name: 'OutfallsName', display: '点位', width:280},
{ name: 'Num', display: '时长(单位:分钟)', width:200},
{ name: 'Sum', display: '总时长(单位:分钟)', width:200}
]
gridManager = $("#maingrid").ligerGrid({
columns: cloumns,
width : '99%',
height : '99%',
pageParmName:'pageno',
//page: 1,
pageSize:20,
rownumbers :true,
root:'rows',
record:'total',
onAfterShowData: function (s) {
setTimeout(function () {
$('#maingrid .l-grid-body-table tbody').rowspan('UserName','Sum' , gridManager);//rowspan传入要合并的列的值
});
}
});
f_reload();//加载表格数据
}
//载入数据源的方法
function f_reload() {
var para = $("#form1").serializeArray();
var formData = new FormData(document.getElementById("form1"));
gridManager.setOptions({
url : action+'!getData.action?rnd='+Math.random(),
parms :$("#form1").serializeArray(), //直接提交表单
dataAction : 'server',
dataType : 'server'
});
}
//
$.fn.extend({
rowspan:function(colname, colname2, tableObj){
var colIdx,colIdx1;
for (var i = 0, n = tableObj.columns.length; i < n; i++) { //判断第几列
if (tableObj.columns[i]["columnname"] == colname) {
colIdx = i-1;
}
if (tableObj.columns[i]["columnname"] == colname2) { //同上
colIdx1 = i-1 ;
}
}
return this.each(function () {
var that,rt;
$('tr', this).each(function (row,element) { //遍历表格
var a = $(element).children();
var gg = $(a.eq(colIdx));
var qq = $(a.eq(colIdx1));
if(that != null && $(that).html() == $(gg).html()){
//合并单元格操作
rowspan = $(that).attr("rowSpan");
rowspan1 = $(rt).attr("rowSpan");
if (rowspan == undefined) { //
$(that).attr("rowSpan", 1);
$(rt).attr("rowSpan", 1);
rowspan = $(that).attr("rowSpan");
rowspan1 = $(rt).attr("rowSpan")
}
rowspan = Number(rowspan) + 1;
rowspan1 = Number(rowspan1) + 1;
$(that).attr("rowSpan", rowspan);
$(rt).attr("rowSpan", rowspan);
$(gg).hide();
$(qq).hide();
}else{
that = gg;
rt = qq;
}
});
});
}
});
或使用ligerUI的自带属性
mergeCell:null, //合并表的列用法传入[0,1,2],索引0开始表示需要合并第一,第二,第三列