bootstrap 合并单元格!使用mergeCells事件能否实现动态合并?

时间:2022-06-23 14:47:28
$('#tb').bootstrapTable('mergeCells', {
            index: 3,
            field: 'remark',
            rowspan: 3
 });
10条数据:1/2/3的remark一样;4/5/6/7的remark一样;
如何让remark一样的单元格合并呢?
有遇到这样的问题解决的人吗

3 个解决方案

#1


你解决了吗,我也有这个需求

#2



$(document).ready(function(){
var columnName="name";
mergeTable(columnName);

});
function mergeTable(field){
$table=$("#table");
var obj=getObjFromTable($table,field);

 for(var item in obj){  
        $("#table").bootstrapTable('mergeCells',{
index:obj[item].index,
field:field,
colspan:1,
rowspan:obj[item].row,
});
      }


}

function getObjFromTable($table,field){
var obj=[];
var maxV=$table.find("th").length;

var columnIndex=0;
var filedVar;
for(columnIndex=0;columnIndex<maxV;columnIndex++){
filedVar=$table.find("th").eq(columnIndex).attr("data-field");
if(filedVar==field) break;

}
var $trs=$table.find("tbody > tr");
var $tr;
var index=0;
var content="";
var row=1;
for (var i = 0; i <$trs.length;i++)
{
$tr=$trs.eq(i);
var contentItem=$tr.find("td").eq(columnIndex).html();
//exist
if(contentItem.length>0 && content==contentItem ){
row++;
}else{
//save
if(row>1){
obj.push({"index":index,"row":row});
}
index=i;
content=contentItem;
row=1;
}
}
if(row>1)obj.push({"index":index,"row":row});
return obj;

}

#3


引用 2 楼 li905663280 的回复:

$(document).ready(function(){
var columnName="name";
mergeTable(columnName);

});
function mergeTable(field){
$table=$("#table");
var obj=getObjFromTable($table,field);

 for(var item in obj){  
        $("#table").bootstrapTable('mergeCells',{
index:obj[item].index,
field:field,
colspan:1,
rowspan:obj[item].row,
});
      }


}

function getObjFromTable($table,field){
var obj=[];
var maxV=$table.find("th").length;

var columnIndex=0;
var filedVar;
for(columnIndex=0;columnIndex<maxV;columnIndex++){
filedVar=$table.find("th").eq(columnIndex).attr("data-field");
if(filedVar==field) break;

}
var $trs=$table.find("tbody > tr");
var $tr;
var index=0;
var content="";
var row=1;
for (var i = 0; i <$trs.length;i++)
{
$tr=$trs.eq(i);
var contentItem=$tr.find("td").eq(columnIndex).html();
//exist
if(contentItem.length>0 && content==contentItem ){
row++;
}else{
//save
if(row>1){
obj.push({"index":index,"row":row});
}
index=i;
content=contentItem;
row=1;
}
}
if(row>1)obj.push({"index":index,"row":row});
return obj;

}
bootstrap 合并单元格!使用mergeCells事件能否实现动态合并?nb

#1


你解决了吗,我也有这个需求

#2



$(document).ready(function(){
var columnName="name";
mergeTable(columnName);

});
function mergeTable(field){
$table=$("#table");
var obj=getObjFromTable($table,field);

 for(var item in obj){  
        $("#table").bootstrapTable('mergeCells',{
index:obj[item].index,
field:field,
colspan:1,
rowspan:obj[item].row,
});
      }


}

function getObjFromTable($table,field){
var obj=[];
var maxV=$table.find("th").length;

var columnIndex=0;
var filedVar;
for(columnIndex=0;columnIndex<maxV;columnIndex++){
filedVar=$table.find("th").eq(columnIndex).attr("data-field");
if(filedVar==field) break;

}
var $trs=$table.find("tbody > tr");
var $tr;
var index=0;
var content="";
var row=1;
for (var i = 0; i <$trs.length;i++)
{
$tr=$trs.eq(i);
var contentItem=$tr.find("td").eq(columnIndex).html();
//exist
if(contentItem.length>0 && content==contentItem ){
row++;
}else{
//save
if(row>1){
obj.push({"index":index,"row":row});
}
index=i;
content=contentItem;
row=1;
}
}
if(row>1)obj.push({"index":index,"row":row});
return obj;

}

#3


引用 2 楼 li905663280 的回复:

$(document).ready(function(){
var columnName="name";
mergeTable(columnName);

});
function mergeTable(field){
$table=$("#table");
var obj=getObjFromTable($table,field);

 for(var item in obj){  
        $("#table").bootstrapTable('mergeCells',{
index:obj[item].index,
field:field,
colspan:1,
rowspan:obj[item].row,
});
      }


}

function getObjFromTable($table,field){
var obj=[];
var maxV=$table.find("th").length;

var columnIndex=0;
var filedVar;
for(columnIndex=0;columnIndex<maxV;columnIndex++){
filedVar=$table.find("th").eq(columnIndex).attr("data-field");
if(filedVar==field) break;

}
var $trs=$table.find("tbody > tr");
var $tr;
var index=0;
var content="";
var row=1;
for (var i = 0; i <$trs.length;i++)
{
$tr=$trs.eq(i);
var contentItem=$tr.find("td").eq(columnIndex).html();
//exist
if(contentItem.length>0 && content==contentItem ){
row++;
}else{
//save
if(row>1){
obj.push({"index":index,"row":row});
}
index=i;
content=contentItem;
row=1;
}
}
if(row>1)obj.push({"index":index,"row":row});
return obj;

}
bootstrap 合并单元格!使用mergeCells事件能否实现动态合并?nb