smoak
smoak

Reputation: 15024

Is there a way to disable initial sorting for jquery DataTables?

I'm using the jquery DataTables plugin. From their documentation:

If sorting is enabled, then DataTables will perform a first pass sort on initialisation. You can define which column(s) the sort is performed upon, and the sorting direction, with this variable. The aaSorting array should contain an array for each column to be sorted initially containing the column's index and a direction string ('asc' or 'desc').

Is it possible to have sorting enabled but disable this first pass sort on initialization? I am currently doing the initial sort server side and need sorting functionality but don't need this initial sort functionality.

Upvotes: 304

Views: 200644

Answers (4)

Juan Silvestre
Juan Silvestre

Reputation: 23

This question is old, but this might help if someone else is struggling with this and doesn't have enough time to find a better way to resolve it. I had a problem using ajax where if I use aaSorting": [], "order": [], "bSort": false or "ordering": false. In all cases it gives an error. And I also have:

 "columnDefs": [
        { sortable: false, orderable: false, targets: '_all' }         
 ],

to disable ordering on all columns. That actually worked on all columns except the first one that ignores the orderable and keeps using the default ordering. So I found a rustic way to make that default ordering arrow to disappear.

I added to the datatable:

 initComplete: function() {
         $('th').removeClass('sorting_asc');
 }

And now it is gone:

enter image description here

Upvotes: 1

smoak
smoak

Reputation: 15024

Well I found the answer set "aaSorting" to an empty array:

$(document).ready( function() {
    $('#example').dataTable({
        /* Disable initial sort */
        "aaSorting": []
    });
})

For newer versions of Datatables (>= 1.10) use order option:

$(document).ready( function() {
    $('#example').dataTable({
        /* No ordering applied by DataTables during initialisation */
        "order": []
    });
})

Upvotes: 707

Ravi Kadaboina
Ravi Kadaboina

Reputation: 8574

As per latest api docs:

$(document).ready(function() {
    $('#example').dataTable({
        "order": []
    });
});

More Info

Upvotes: 117

luchopintado
luchopintado

Reputation: 939

In datatable options put this:

$(document).ready( function() {
  $('#example').dataTable({
    "aaSorting": [[ 2, 'asc' ]], 
    //More options ...

   });
})

Here is the solution: "aaSorting": [[ 2, 'asc' ]],

2 means table will be sorted by third column,
asc in ascending order.

Upvotes: 0

Related Questions