easyUI自动合并相同单元行

目标样式:

1、在需要合并的table标签中加上 data-options="onLoadSuccess: onLoadSuccess",默认加载该方法

2、方法内自动合并代码





//合并列id为col1,当前页面所有数据如果相同则合并行
function onLoadSuccess(data){
		var rows = $('#tableid').datagrid('getRows');
		var startIndex = 0;
		var totalRow = 1;
		var merges = new Object();
		var mergesTotal = 0;
		for(var i=0; i<rows.length; i++){
			//得到的两种数据保存在merges[i]里
			if(rows[i+1] != undefined){
                //下一行还有数据
				if(rows[i].col1 == rows[i+1].col1){
					totalRow++;
				}else{
					//开始不一样了,存储上一组一样的数据组
					var merge = new Object();
					merge['index']=startIndex;
					merge['rowspan']=totalRow;
					merges[mergesTotal]=merge;
					//初始化数据组
					startIndex = startIndex+totalRow;
					totalRow = 1;
					mergesTotal++;
				}	
			}else{
				//最后一组
				var merge = new Object();
				merge['index']=startIndex;
				merge['rowspan']=totalRow;
				merges[mergesTotal]=merge;
			}
		}
		//获取当前rows们,计算相同数据的条数,以及相同数据的第一列的index
		for(var i=0; i<mergesTotal+1; i++){
			console.log(merges[i]);
			$(this).datagrid('mergeCells',{
				index: merges[i].index,
				field: 'col1',
				rowspan: merges[i].rowspan
			});
		}
	}

思路:判断上下行一样与否,不一样则获取本行为止数据行数,一样则行数+1 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值