使用特殊格式对数据表中的数字进行排序

时间:2017-02-18 19:05:37

标签: jquery datatables

因此,在使用数据表https://datatables.net/时,我希望格式化货币,因此它显示为10亿美元(10亿美元),100万美元(1百万美元)和1千美元(1千美元),但问题是在排序时它是与1B相同的1M,所以如果我有2M和1B,200万将超过10亿,是否有可能使用这样的格式排序?

2 个答案:

答案 0 :(得分:1)

您可以更改File size排序插件以生成以下代码:

jQuery.fn.dataTable.ext.type.order['currency-abbr-pre'] = function ( data ) {
    var matches = data.match( /^\$(\d+(?:\.\d+)?)\s*([a-z]+)/i );
    var multipliers = {
        k: 1000,
        m: 1000000,
        b: 1000000000
    };

    if (matches) {
        var multiplier = multipliers[matches[2].toLowerCase()];
        return parseFloat( matches[1] ) * multiplier;
    } else {
        return -1;
    };
};

$(document).ready(function (){
    var table = $('#example').DataTable({
        columnDefs: [
            { type: 'currency-abbr', targets: 1 }
        ]    
    });
});

请参阅this example以获取代码和演示。

答案 1 :(得分:1)

<td data-sort="1000">1B</td>
<td data-sort="10">10M</td>