簡體   English   中英

jQuery Datatable中的自定義列排序

[英]Custom column sorting in jquery Datatable

我正在使用jquery數據表來顯示數據。 沒有數據時顯示“-”。 當前,當表格對數據進行排序時,所有的'-'都會出現在開頭,其順序如下所示:

--
--
10
20
400
800

但是我需要使“-”在按升序排序時顯示在最后,並且應如下所示:

10
20
400
800
--
--

請讓我知道如何在jquery數據表中獲得此行為?

你可以使用擴展

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。 描述工作不利

然后在數據表的列定義中,使用

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

您可以使用以下代碼:

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

參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM