使用DataTables合并行

效果如下:

首先需要对数据进行分组查询,使用COUNT(*) OVER(PARTITION BY column名称) as columnCount 获取每组的数据条数 columnCount;使用ROW_NUMBER() OVER(partition by column名称 ORDER BY column名称 DESC) as columnNum 为每组的数据生成排序ID columnNum;

使用createdCell函数进行单元格合并,具体参考:www.datatables.club/reference/o…

"columnDefs":[{
    "targets": 0,
    "orderable" : false,
    "data":null,
    "createdCell": function(td, cellData, rowData, row, col) {
        if(rowData.columnNum > 1){
        	$(td).remove();
        }
        if(rowData.columnNum == 1){
        	$(td).attr("rowspan", rowData.columnCount);
        }
    }
}]
复制代码

rowData为每一行的数据内容,判断当前行在分组内的columnNum,等于1的添加属性rowspan,并设置其值为columnCount;大于1的将td单元格删除。 PS:在使用createdCell函数时总是报错如下:

经过各种查找,在添加"data":null之后问题解决,具体原因参考: datatables.net/forums/disc…

Add: data: null to your first column to tell DataTables not to try and source the data from anywhere. Otherwise it will use the column index (0 in this case).

在第一列中添加:data:null,告诉数据表不要尝试从任何地方获取数据。否则,它将使用列索引(在本例中为0)。

转载于:https://juejin.im/post/5c2c2ae1e51d45451758c508

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值