jquery datatables sorting neglect null value

前端 未结 2 1238
感动是毒
感动是毒 2021-01-06 20:31

I\'m using datatables and jQuery for making nice sortable tables. I now want to sort the rows an a value. This value is a numeric value. But it can also be not available, so

相关标签:
2条回答
  • 2021-01-06 20:49

    Just came across this and wanted to share a much simpler solution (which perhaps wasn't available when this question was originally answered):

    You can add the attribute data-order to each td tag, which will then be used to order. For example:

    <td data-order="10">10</td>
    <td data-order="9999">&ndash;</td>
    

    ... would sort the 10 as a 10, but the dash as if it were 9999. What you fill in for the dashes could be variable and depend on e.g. identifying the maximum value on the server side. Plus, this is much more flexible for all kinds of data. Check out the doc here:

    https://datatables.net/examples/advanced_init/html5-data-options

    0 讨论(0)
  • 2021-01-06 20:50

    See this: http://jsfiddle.net/CYubV/

    The first column in the table works like a normal column; the second column works like you ask.

    Try custom sorting, something like this:

    $.fn.dataTableExt.oSort['nullable-asc'] = function(a,b) {
        if (a == '-')
            return 1;
        else if (b == '-')
            return -1;
        else
        {
            var ia = parseInt(a);
            var ib = parseInt(b);
            return (ia<ib) ? -1 : ((ia > ib) ? 1 : 0);
        }
    }
    
    $.fn.dataTableExt.oSort['nullable-desc'] = function(a,b) {
        if (a == '-')
            return 1;
        else if (b == '-')
            return -1;
        else
        {
            var ia = parseInt(a);
            var ib = parseInt(b);
            return (ia>ib) ? -1 : ((ia < ib) ? 1 : 0);
        }
    }
    
    $('#table').dataTable( {
        "bPaginate": false,
        "bFilter": false,
        "aoColumns": [
                null,
                {"bSortable": true, "sType": "nullable"}
                    ],
    } );
    
    0 讨论(0)
提交回复
热议问题