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

How to set column type to integer with the data containing $ symbol in datatables

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

值如下:

Due
---
.00
[=10=].00
[=10=].00
2.99
[=10=].00
0.00
[=10=].00
.60

当我点击排序按钮时,它正在排序

Due
---
[=11=].00
[=11=].00
[=11=].00
[=11=].00
[=11=].00
0.00
.60
.00
2.99

我想要如下结果

Due
---
[=12=].00
[=12=].00
[=12=].00
[=12=].00
[=12=].00    
.60
.00
0.00
2.99

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

我建议您使用 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 中将您的列指定为货币类型:

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

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

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