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

juanxinli0814 2017-05-02 04:43:36
$('#tb').bootstrapTable('mergeCells', {
index: 3,
field: 'remark',
rowspan: 3
});
10条数据:1/2/3的remark一样;4/5/6/7的remark一样;
如何让remark一样的单元格合并呢?
有遇到这样的问题解决的人吗
...全文
1549 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fff-cai 2017-11-15
  • 打赏
  • 举报
回复
引用 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;
	
}
nb
li905663280 2017-05-12
  • 打赏
  • 举报
回复

$(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;
	
}
m0_37595187 2017-05-09
  • 打赏
  • 举报
回复
你解决了吗,我也有这个需求

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧