Skip to content
On this page

合并单元格

首先要对数据进行正确的排序,然后定义一个tableInitSuccess(data)方法,实现列合并。如下:

avatar

avatar

javascript
functiontableInitSuccess(data){
//声明一个map计算相同属性值在data对象出现的次数和
//合并列字段名fieldName
varfieldName="order_index";
varsortMap={};
for(vari=0;i<data.length;i++){
for(varpropindata[i]){
if(prop==fieldName){
varkey=data[i][prop]
if(sortMap.hasOwnProperty(key)){
sortMap[key]=sortMap[key]*1+1;
}else{
sortMap[key]=1;
}
break;
}
}
}
for(varpropinsortMap){
console.log(prop,sortMap[prop])
}
varindex=0;
for(varpropinsortMap){
varcount=sortMap[prop]*1;
$("table").bootstrapTable('mergeCells',{index:index,field:fieldName,colspan:1,rowspan:count});
index+=count;
}
}

算法2,不用排序,自由合并

avatar

javascript
functiontableInitSuccess(data){

if(data==null||data.length<=1)return;

//合并列字段名fieldName

varfieldName="auditing";

varindex=0;

varkey=data[0][fieldName];

varcount=0;

for(vari=1;i<data.length;i++){
count++;
if(key==data[i][fieldName])continue;
if(count>1){
$("table").bootstrapTable('mergeCells',{index:index,field:fieldName,colspan:1,rowspan:count});
index+=count;
}else{
index++;
}
count=0;
key=data[i][fieldName];
}
}