温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Bootstrap mergeCells合并单元格(多列)

发布时间:2020-07-20 22:00:29 来源:网络 阅读:7332 作者:hecnet 栏目:web开发

/**

  • 合并单元格
  • @param target 目标表格对象
  • @param data 原始数据(在服务端完成排序)
  • @param fieldName 合并参照的属性名称
  • @param fieldList 要合并的字段集合[不含fieldName]![]
  • @param colspan 合并开始列
    */
    function mergeCells(target, data, fieldName, fieldList, colspan) {
    // 声明一个map计算相同属性值在data对象出现的次数和
    var sortMap = {};
    var index = 0;
    var begini=0;
    var endi = 0;
    // 统计fieldName长度
    getCount(target, data, 0, data.length, fieldName, index, sortMap);
    for(var prop in sortMap){
    endi = index+sortMap[prop];
    if(sortMap[prop]>1){
    // console.log(fieldName + ":" + prop,sortMap[prop]);
    for(var i=0;i<fieldList.length;i++){
    getCount(target, data, begini, endi, fieldList[i], index, null);
    }
    }
    index = begini = endi;
    }

}

/**

  • 计算合并
    /
    function getCount(target, data, begini, endi, fieldName, index, sortMap) {
    // console.log('fieldName:' + fieldName);
    // console.log(begini,endi);
    if(sortMap == null){
    sortMap = {};
    }
    for(var i = begini ; i < endi ; 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;
    }
    // console.log(fieldName + ":" + key, sortMap[key]);
    break;
    }
    }
    }
    for(var p in sortMap){
    var count = sortMap[p] * 1;
    // console.log(">>>>>" + ":" + p , count);
    $(target).bootstrapTable('mergeCells',{index:index, field:fieldName, colspan: 1, rowspan: count});
    index += count;
    }

}

使用:
var data1 = $('#table').bootstrapTable('getData', true);
mergeCells($('#table'), data1, "proname", ["promonth", "pkno", "zb"], 1);

Bootstrap mergeCells合并单元格(多列)

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI