星空2020 2023-09-10 11:57 采纳率: 64.1%
浏览 53
已结题

layui table使用totalRow让数据列合计,文本列显示行数

目前数据列使用totalRow没有问题,如何让文本列,或者是指定的数据列不计算数据,只统计行数。

    var myTable = table.render({
      elem: '#myTable'
      ,url: './data.php'
      ,height: $(document).height() - $('#myTable').offset().top - 30
      ,totalRow: true
      ,page: false
      ,cols: [[
           {field: 'id',fixed: 'left',sort:true,filter:true,totalRowText:'汇总'}
         ,{field: 'name',sort:true,filter:true,totalRow:true}//此文本列的totalRow如何显示行数?
         ,{field: 'score',sort:true,filter:true,totalRow:true,style:'font-weight:bold'} 
         ,{field: 'target',sort:true,filter:true,totalRow:true,colspan:0,style:'font-weight:bold'} //此数据列的totalRow如何显示行数?
      ]]
      ,done: function (res,count,curr) {
        soulTable.render(this); 
      }
      ,filter: {bottom: false}
    });

  • 写回答

2条回答 默认 最新

  • 呈两面包夹芝士 2023-09-10 12:04
    关注

    在layui的table组件中,totalRow参数是用来设置是否开启合计行的,而且它默认对所有列都开启。对于你希望某些列不参与合计,只显示行数,目前layui的table组件并没有提供直接的方法或参数来实现这一需求。

    不过,你可以通过自定义合计行的方式来实现。具体来说,你可以在done回调函数中对合计行进行处理,计算出你的自定义合计结果,然后替换掉原来的合计行。

    以下是一个简单的示例:

    var myTable = table.render({
      elem: '#myTable'
      ,url: './zb_repair_search_data'
      ,height: $(document).height() - $('#myTable').offset().top - 30
      ,totalRow: true
      ,page: false
      ,cols: [[
           {field: 'id',fixed: 'left',sort:true,filter:true,totalRowText:'汇总'}
         ,{field: 'name',sort:true,filter:true,totalRow:true}//此文本列的totalRow如何显示行数?
         ,{field: 'score',sort:true,filter:true,totalRow:true,style:'font-weight:bold'} 
         ,{field: 'target',sort:true,filter:true,totalRow:true,colspan:0,style:'font-weight:bold'} //此数据列的totalRow如何显示行数?
      ]]
      ,done: function (res,count,curr) {
        soulTable.render(this); 
    
        // 自定义合计行
        var data = res.data; // 获取到当前表格的数据
        var totalRowData = {}; // 用于存放自定义合计行的数据
    
        // 遍历每一列,对需要自定义合计的列进行处理
        for (var i = 0; i < data.length; i++) {
          // 对 'name' 列进行处理,这里只是简单地统计行数
          if (data[i].name) {
            if (!totalRowData.name) {
              totalRowData.name = 1;
            } else {
              totalRowData.name += 1;
            }
          }
          // 对 'target' 列进行处理,这里只是简单地统计行数
          if (data[i].target) {
            if (!totalRowData.target) {
              totalRowData.target = 1;
            } else {
              totalRowData.target += 1;
            }
          }
        }
    
        // 使用自定义合计行替换原来的合计行
        var totalRowIndex = myTable.config.totalRowIndex; // 获取合计行的索引
        myTable.config.data[totalRowIndex] = totalRowData; // 替换合计行的数据
        myTable.reload({page: {curr: curr}}); // 重新加载表格,使自定义合计行生效
      }
      ,filter: {bottom: false}
    });
    

    请注意,这只是一个简单的示例,你可能需要根据你的实际需求来修改和完善自定义合计行的处理逻辑。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月11日
  • 修改了问题 9月10日
  • 创建了问题 9月10日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题