数据表 - 列的块排序

时间:2014-07-07 13:52:04

标签: javascript jquery jquery-datatables

我正在使用数据表Jquery插件。任何人都可以帮我阻止表排序第一列和第二列吗?

我需要用户能够单击其他列并对其进行排序,但是当我这样做时,前两列也会排序。 这些值可以锁定并且永远不会排序吗? (我需要它们静态)

1 个答案:

答案 0 :(得分:3)

对于那些希望阻止对列进行排序但仍允许他们在对其他列进行排序时进行排序的人:

$('#table').dataTable({
        // Disable sorting on the first two columns
        "aoColumnDefs" : [ {
            'bSortable' : false,
            'aTargets' : [ 0,1 ]
        } ]
    });

或者你可以像这样定位一个类:

// Disable sorting based on class
"aoColumnDefs" : [ {
    "bSortable" : false,
    "aTargets" : [ "disableSort" ]
} ]

将类应用于表头而不是行。

对于OP,如何使列完全静态,以便在每次单击列时保持某种排名/索引功能:

$(document).ready(function() {
    $('#example').dataTable( {
        "fnDrawCallback": function ( oSettings ) {
            /* Need to redo the counters if filtered or sorted */
            if ( oSettings.bSorted || oSettings.bFiltered )
            {
                for ( var i=0, iLen=oSettings.aiDisplay.length ; i<iLen ; i++ )
                {
                    $('td:eq(0)', oSettings.aoData[ oSettings.aiDisplay[i] ].nTr ).html( i+1 );
                }
            }
        },
        "aoColumnDefs": [
            { "bSortable": false, "aTargets": [ 0 ] }
        ],
        "aaSorting": [[ 1, 'asc' ]]
    } );
} );