如何使用jQuery数据表对数字,日期,货币列进行排序

时间:2014-01-03 10:34:26

标签: jquery sorting datatable

我正在使用jQuery数据表来显示表中的一些数据。我的表包含数据,如字符串,货币,日期和数字。

当我尝试对日期,货币和数字列进行排序时,data-table认为它是一个字符串并对其进行排序。但我想按类型排序。

col1  | col2       | col3
Jack  | 2013-12-23 | 10,230
Jack2 | 2013-11-1  | 1,480

我看过Google和官方网站,所有人都在讨论一些代码,但我是数据表的新手,我需要帮助。

1 个答案:

答案 0 :(得分:0)

Here's a sample使用DataTables sorting plugin对日期和逗号格式数值进行排序。

jQuery.extend(jQuery.fn.dataTableExt.oSort, {
    "numeric-comma-pre": function (a) {
        var x = (a == "-") ? 0 : a.replace(/,/, ".");
        return parseFloat(x);
    },

        "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));
    },
        'us_date-asc': function (a, b) {
        var x = new Date(a),
            y = new Date(b);
        return ((x < y) ? -1 : ((x > y) ? 1 : 0));
    },
    'us_date-desc' : function (a, b) {
        var x = new Date(a),
            y = new Date(b);
        return ((x < y) ? 1 : ((x > y) ? -1 : 0));
    }
});


$(document).ready(function () {
    $('#example').dataTable({
        "sPaginationType": "full_numbers",
            "aoColumns": [
               {"sType": "us_date"},
               null,
               null, 
               {"sType": "numeric-comma"},
               null]
    });
});

在这个演示中,我没有包含排序插件。相反,我通过内联添加排序插件代码扩展了排序功能。