jquery Datatable中的自定义列排序

时间:2014-04-07 06:38:21

标签: javascript jquery jquery-datatables

我正在使用jquery数据表来显示数据。当没有数据时我显示' - '。目前,当表对数据进行排序时,所有' - '都在开头,顺序如下:

--
--
10
20
400
800

但是我需要让' - '在按升序排序时最后显示,并且应该如下所示:

10
20
400
800
--
--

请告诉我们如何才能在jquery datatable中获得此行为?

2 个答案:

答案 0 :(得分:1)

你可以使用exstension

jQuery.extend(jQuery.fn.dataTableExt.oSort, {
    "myorder-pre": function (a) {

    },

    "myorder-asc": function (a, b) {
        if(a == '--' && b != '--')
            return 1;
        else if(b == '--' && a != '--')
            return -1;
        else if(b == '--'&& a == '--')
            return 0;
        else
        {
            a = parseFloat(a);
            b = parseFloat(b);
            return ((a < b) ? -1 : ((a > b) ? 1 : 0));

        }
    },

    "myorder-desc": function (a, b) {
        if(a == '--' && b != '--')
            return -1;
        else if(b == '--' && a != '--')
            return 1;
        else if(b == '--'&& a == '--')
            return 0;
        else
        {
            a = parseFloat(a);
            b = parseFloat(b);
            return ((a < b) ? 1 : ((a > b) ? -1 : 0));

        }
    }
});
在所有订单调用之前使用

myorder-pre。 订购asc时myorder-asc。如果是次要b则返回负数,如果是主要b则返回正数,如果相等则返回0。 描述工作不利

然后在datatable列的定义中,使用

"aoColumnDefs": [{ "sType": 'myorder'}]

答案 1 :(得分:0)

您可以使用以下代码:

 $('#example').dataTable( {
    "aaSorting": [[ 4, "desc" ]]
} );

reference