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.

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": []
    });
})

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,


25

Spróbuj tego:

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

to rozwiąże twój problem.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.