Czy istnieje sposób na wyłączenie początkowego sortowania tabel jQuery DataTables?

231

Korzystam z wtyczki jquery DataTables . Z ich dokumentacji:

Jeśli sortowanie jest włączone, DataTables przeprowadzi sortowanie pierwszego przejścia po inicjalizacji. Za pomocą tej zmiennej możesz zdefiniować kolumny, według których ma odbywać się sortowanie, oraz kierunek sortowania. Tablica aaSorting powinna zawierać tablicę dla każdej kolumny, która ma zostać posortowana, początkowo zawierającą indeks kolumny i ciąg kierunku („asc” lub „desc”).

Czy możliwe jest włączenie sortowania, ale wyłączenie tego pierwszego sortowania podczas inicjalizacji? Obecnie robię początkowy serwer sortowania i potrzebuję funkcji sortowania, ale nie potrzebuję tej funkcji sortowania początkowego.

smoak
źródło

Odpowiedzi:

566

Znalazłem zestaw odpowiedzi „aaSorting” na pustą tablicę:

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

W przypadku nowszych wersji Datatables (> = 1.10) użyj opcji zamówienia :

$(document).ready( function() {
    $('#example').dataTable({
        /* No ordering applied by DataTables during initialisation */
        "order": []
    });
})
smoak
źródło
5
Ta odpowiedź była bardzo pomocna, ale warto zauważyć potencjalne zamieszanie. Jeśli kolumna 0 jest wstępnie posortowana rosnąco, a to wstępne sortowanie jest wyłączone, to kiedy użytkownik po raz pierwszy kliknie nagłówek kolumny 0, posortuje w kolejności rosnącej. Dla użytkownika wygląda to tak, jakby nic się nie wydarzyło, ponieważ będzie oczekiwał porządku malejącego. Drugie kliknięcie posortuje opis. Aby obejść ten problem można ustawić asSorting: ['desc', 'asc']w aoColumnDefstaki sposób, że pierwsze kliknięcie jest desc sortowania.
tomfumb
8
W przypadku nowszych wersji jego kolejność: []
Darren
@tomfumb W rzeczywistości istnieje interfejs GUI pokazujący, że nie jest posortowany. Pierwsze kliknięcie pokaże aktywowane sortowanie, nawet jeśli elementy się nie zmieniają. To mi wystarczy.
Nelson
2
Możesz też ustawić go na poziomie stołu -><table data-order="[]">
Howdy_McGee
To rozwiązanie nie działa dla mnie, ale <table data-order="[]">działa dla mnie.
Alper,
101

Zgodnie z najnowszymi dokumentami API:

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

Więcej informacji

Ravi Kadaboina
źródło
25

Spróbuj tego:

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

to rozwiąże twój problem.

FennRussel
źródło
1

W opcjach danych wstaw to:

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

   });
})

Oto rozwiązanie: „aaSorting”: [[2, 'asc']],

2oznacza, że ​​tabela zostanie posortowana według trzeciej kolumny,
ascw porządku rosnącym.

luchopintado
źródło
12
Pytanie dotyczyło tego, jak „wyłączyć sortowanie początkowe”, a nie jak określić kolejność sortowania. Ta odpowiedź lepiej pasuje do innego pytania.
Gone Coding