【问题标题】:Datatables sorting - how to ignore text in column?数据表排序 - 如何忽略列中的文本?
【发布时间】:2020-07-10 02:22:13
【问题描述】:

我已使用此脚本对数据表进行排序并忽略我不想排序的文本,我会解释。

这是列示例:

10,836
↑(10.71%)
14,836
↑(13.71%)

我想忽略这个:↑(10.71%) 并根据这个排序:10,836。

这是我的脚本:

jQuery.extend(jQuery.fn.dataTableExt.oSort, {
  "justNum-pre": a => parseFloat(a.replace(/\D/g, "")),
  "justNum-asc": (a, b) => a - b,
  "justNum-desc": (a, b) => b - a
});
$(document).ready(function () {
  var table = $('#dataTable').DataTable({
      order: [[ 1, "desc" ]],
      scrollY: 200,
      scrollX: false,
      responsive: true,
      paging: false,
      //colReorder: true,
      //pageLength: 100,
      columns: [
          {
              "render": function(data, type, row){
                  return data.split(" ").join("<br/>");
              }
          },
          null,
          null,
          null,
          null,
          null,
          null
      ],
      columnDefs: [
      { className: "all", "targets": [ 0, 1, 3, 6 ] },
      {
        type: 'justNum',
        targets: 1
      }
      ]
  });
});

【问题讨论】:

    标签: javascript jquery datatables


    【解决方案1】:

    您可以使用 DataTables orderData 功能做到这一点。

    例如,假设您的格式化数据位于第一列:

    10,836
    ↑(10.71%)
    

    添加仅包含数字部分(无文本)10836 的第二列并将其定义为隐藏列。

    然后,在您的数据表定义中创建一个 columnDefs 部分 - 如下所示:

    $('#demo').DataTable( {
        "columnDefs": [
          { "orderData": [ 1 ], "targets": 0 },
          { "visible": false, "targets": 1 }
        ]
      } );
    
    } );
    

    这表示第一列(目标索引 0)将使用第二列(目标索引 1)中的数据进行排序。第二列将是隐藏列。

    【讨论】:

    • 我修好了! tnx!!
    猜你喜欢
    • 1970-01-01
    • 2021-08-15
    • 2011-05-02
    • 2023-03-11
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    相关资源
    最近更新 更多