bootstrap table动态行合并

在bootstrap table实现行合并主要使用方法:

$('#table_list').bootstrapTable('mergeCells', {index: 0, field: 'col_name', rowspan: 5});

 

以下假设已经将需要进行行合并的列名保存在了页面上ID为tableRowMergeCols的div元素上,列名以逗号分隔,例如:“col1,col2,col3”,这个值可以通过ajax从后台中动态获取。然后通过二层循环,实现bootstrap table的行合并

$("#table_list").bootstrapTable({
    method: "GET",
    ……
    onLoadSuccess: function (res) {
        var rowMergeCols = $('#tableRowMergeCols').val().split(",");
        for (var i = 0; i < rowMergeCols.length; i++) {
            var colName = rowMergeCols[i];
            var colVal = '';
            var rowStart = 0;
            var rowCount = 0;
            for (var j = 0; j < res.rows.length; j++) {
                var row = res.rows[j];
                if (colVal == '') {
                    colVal = row[colName];
                    rowCount++;
                } else {
                    if (colVal == row[colName]) {// 行的值相同
                        // 计数加1
                        rowCount++;
                        // 最后一行
                        if (j == res.rows.length - 1) {
                            $('#table_list').bootstrapTable('mergeCells', {
                                index: rowStart,
                                field: colName,
                                rowspan: rowCount
                            });
                        }
                    } else {// 行值不同,将前面相同行值的所有行合并
                        $('#table_list').bootstrapTable('mergeCells', {
                            index: rowStart,
                            field: colName,
                            rowspan: rowCount
                        });
                        colVal = row[colName];
                        rowCount = 1;
                        rowStart = j;
                    }
                }
            }
        }
    }
}

 

posted on 2019-02-18 11:35  wanbao  阅读(2889)  评论(1编辑  收藏  举报