数据表 - 用点对格式化数字进行排序

Posted

技术标签:

【中文标题】数据表 - 用点对格式化数字进行排序【英文标题】:datatables - sorting formatted numbers with dot 【发布时间】:2018-01-10 20:37:16 【问题描述】:

我在使用https://datatables.net/ 对特殊类型的格式化数字进行排序/排序时遇到问题。我有像111.111.11146.323.345,88 这样的数字,它们是金额。

我尝试使用类型:num-fmt,但没有成功。当我在我的项目中添加这个类型属性时,我什至不能再排序了。没有发生像我禁用订购一样的事情。

希望你们能帮助我! 太棒了

private initVolumenTable() 
    $('#volumen-table').DataTable(
        columnDefs: [
            targets:3, type: 'num-fmt'    
        ],
        "scrollY": "400px",
        "scrollCollapse": false,
        "paging": false,
        "ordering": true,           
    );

在 JSFiddle 中发生了排序,但它不正确..

所以我创建了一个:JsFiddle 。 :)

【问题讨论】:

【参考方案1】:

试试这个代码:

$(document).ready(function() 
  $('#example').dataTable();
  jQuery.extend(jQuery.fn.dataTableExt.oSort, 
      "numeric-comma-pre": function (a) 
          // prepare number
          a = +(a.replace(",", "."));
          a = (isNaN(a)) ? Number.MAX_VALUE : a;
          return a;
      ,
      "numeric-comma-asc": function (a, b) 
          return ((a < b) ? -1 : ((a > b) ? 1 : 0));
      ,
      "numeric-comma-desc": function (a, b) 
          return ((a < b) ? 1 : ((a > b) ? -1 : 0));
      
  );
);

【讨论】:

以上是关于数据表 - 用点对格式化数字进行排序的主要内容,如果未能解决你的问题,请参考以下文章

用点、字母、数字对对象数组进行排序。我能够按数字排序,但混合值很困难。不确定是不是可以做对

DataTables 对字符串而不是数字进行排序

像字符一样打印,但在 Shiny 和 DataTable 中像数字一样排序

gwas分析时数据格式转换

Excel:如何像数据透视表一样对一系列带有前导零的数字进行排序?

在 DataTables API 中排序之前格式化数字