EasyUi中datagrid跨行合并的问题

任务目标

我们需要在一张表中显示数据,但是在某几个字段 ,也就是表的某几个column,如果他们的row的值是一致的,那就将这些row进行跨行合并。

实际操作

逻辑上应该不复杂,不过也还有瑕疵

//tableId是表元素的id,colList是指定需要跨行合并的字段(字符串变量,用","进行分割)
function mergeByFields(tableId,cols){
	var colArr=cols.split(',');
	var tTable=$("#"+tableId);
	//后台返回的记录行数
	var rowCnt=tTable.datagrid("getRows").length;
	var perTxt="";
	vat curTxt="";
	for(var i=colArr.length;i>=0;i--){
		var limit=1;
		var index=0;
		//每次对行遍历起始时perTxt为i列第一行数据
		perTxt=tTable.datagrid("getRows")[0][colArr[i]];
		for(var j=1;j<rowCnt;j++{
			//curTxt指向实时遍历数据
			curTxt=tTable.datagrid("getRows")[j][colArr[i]];
			//如果当前到最后一行
			if(j=rowCnt-1&&perTxt==curTxt){
				index=j-limit;
				tTable.datagrid("mergeCells",{
					index:index,
					field:colArr[i],
					rowspan:limit+1,
					colspan:null
				});
			}
			if(perTxt==curTxt){
				limit+=1;
			}else if(perTxt!=curTxt){
				index=j-limit;
				tTable.datagrid("mergeCells",{
					index:index,
					field:colArr[i],
					rowspan:limit,
					colspan:null
				});
				perTxt=tTable.datagrid("getRows")[j][colArr[i]];
				limit=1;
			}
		}
	}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值