如何使用数据表中包含$符号的数据将列类型设置为整数

时间:2015-04-10 14:49:29

标签: datatable datatables jquery-datatables

我有一个用户网格,其中一列包含总计截止日期。我正在追加' $'符号到行中的每个到期值。现在数据表将此列视为字符串并将其排序为字符串。如何将字符串类型转换为整数类型。

值如下:

Due
---
$88.00
$0.00
$0.00
$942.99
$0.00
$230.00
$0.00
$84.60

当我点击排序按钮时,它就像

一样排序
Due
---
$0.00
$0.00
$0.00
$0.00
$0.00
$230.00
$84.60
$88.00
$942.99

我想要结果如下

Due
---
$0.00
$0.00
$0.00
$0.00
$0.00    
$84.60
$88.00
$230.00
$942.99

这种情况正在发生,因为' $'符号。但我需要那个符号。我在这里看到了一些文档https://datatables.net/reference/option/columns.type,但这对我没用。

1 个答案:

答案 0 :(得分:1)

我建议您使用currency sorting plugin,这是一个非常小的附加组件:

jQuery.extend( jQuery.fn.dataTableExt.oSort, {
    "currency-pre": function ( a ) {
        a = (a==="-") ? 0 : a.replace( /[^\d\-\.]/g, "" );
        return parseFloat( a );
    },
    "currency-asc": function ( a, b ) {
        return a - b;
    },
    "currency-desc": function ( a, b ) {
        return b - a;
    }
});

包含该代码,或通过CDN引用它,并在columnDefs中将您的columnn指定为类型货币:

columnDefs: [
   { type: 'currency', targets: 0 }
]

其中targets是列索引; targets也可以是列索引数组,例如[3, 8, 12]

带上述值的

演示(通过CDN使用货币插件) - >的 http://jsfiddle.net/3tdcje7y/