关于bootstrapTable的用法(1)-合并单元格

@关于bootstrapTable的用法(1)-合并单元格
在平时使用bootstrapTable时,有时需要合并单元格,以下是合并的用法
单行合并时

//在bootstrapTable最后面加上
 onLoadSuccess : function(data) {                
  		var data = $('#table').bootstrapTable('getData', true);
       //合并单元格
       mergeCells(data, "需合并的属性", 1, $('#table'));
}
//合并的函数
/**
     * 合并单元格
	 * @param data 原始数据(在服务端完成排序)
	 * @param fieldName 合并属性名称
	 * @param colspan  合并列
	 * @param target  目标表格对象
 */
function mergeCells(data,fieldName,colspan,target){
	  //声明一个map计算相同属性值在data对象出现的次数和
	  var sortMap = {};
	  for(var i = 0 ; i < data.length ; i++){
	  	for(var prop in data[i]){
	    	if(prop == fieldName){
	    		var key = data[i][prop]
	    	    if(sortMap.hasOwnProperty(key)){
	    	          sortMap[key] = sortMap[key] * 1 + 1;
	    	    } else {
	    	          sortMap[key] = 1;
	    	    }
	    	    break;
	    	} 
	  	 }
	  }
	  var index = 0;
	  for(var prop in sortMap){
	  	var count = sortMap[prop] * 1;
	    $(target).bootstrapTable('mergeCells',{index:index, field:fieldName, colspan: colspan, rowspan: count});  
	    index += count;
	  }
}

多行合并时

//在bootstrapTable最后面加上
 onLoadSuccess : function(data) {                
 	var data = $('#table').bootstrapTable('getData', true);
    //合并单元格
    mergeCells(data, "属性1", "需合并的属性(属性1)", 1, $('#table'));
	mergeCells(data, "属性1", "需合并的属性(属性2)", 1,  $('#table'));
}
//合并的函数
/**
* 合并单元格
 * @param data  原始数据(在服务端完成排序)
 * @param baseLine  以此行为合并标准
 * @param fieldName 合并属性名称
 * @param colspan   合并列
 * @param target    目标表格对象
 */
function mergeCells(data,baseLine,fieldName,colspan,target){
    //声明一个map计算相同属性值在data对象出现的次数和
    var sortMap = {};
    for(var i = 0 ; i < data.length ; i++){
        for(var prop in data[i]){
            if(prop == baseLine){
                var key = data[i][prop]
                if(sortMap.hasOwnProperty(key)){
                    sortMap[key] = sortMap[key] * 1 + 1;
                } else {
                    sortMap[key] = 1;
                }
                break;
            } 
        }
    }
    var index = 0;
    for(var prop in sortMap){
        var count = sortMap[prop] * 1;
        $(target).bootstrapTable('mergeCells',{index:index, field:fieldName, colspan: colspan, rowspan: count});   
        index += count;
    }
}

单行和多行合并的函数差不多是一样的,只是比较的时候比较的对象不一样

单行合并效果图
单行合并效果图
多行合并效果图
多行合并效果图
参考文章
bootstrap table实现合并单元格效果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值