Есть ли способ отключить начальную сортировку для jquery DataTables?

231

Я использую плагин jquery DataTables . Из их документации:

Если сортировка включена, DataTables выполнит сортировку первого прохода при инициализации. С помощью этой переменной вы можете определить, по какому столбцу (столбцам) выполняется сортировка и направление сортировки. Массив aaSorting должен содержать массив для каждого столбца, который должен быть отсортирован изначально, содержащий индекс столбца и строку направления («asc» или «desc»).

Можно ли включить сортировку, но отключить эту первую сортировку при инициализации? В настоящее время я выполняю начальную сортировку на стороне сервера и нуждаюсь в функциональности сортировки, но мне не нужны эти начальные функции сортировки

Смоак
источник

Ответы:

566

Ну, я нашел ответ установить "aaSorting" на пустой массив:

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

Для более новых версий Datatables (> = 1.10) используйте опцию заказа :

$(document).ready( function() {
    $('#example').dataTable({
        /* No ordering applied by DataTables during initialisation */
        "order": []
    });
})
Смоак
источник
5
Этот ответ очень помог, но стоит отметить возможную путаницу. Если col 0 предварительно отсортирован по asc и эта начальная сортировка отключена, то, когда пользователь впервые щелкает заголовок col 0, он сортируется в порядке asc. Для пользователя это выглядит так, будто ничего не происходит, так как они ожидают, что порядок не будет Второй щелчок отсортирует desc. Чтобы обойти эту проблему вы можете установить asSorting: ['desc', 'asc']в aoColumnDefsтаким образом , что первый щелчок является убывание рода.
tomfumb
8
Для более новых версий его порядок: []
Даррен
@tomfumb На самом деле, есть графический интерфейс, показывающий, что он не отсортирован. Первый щелчок покажет активируемую сортировку, даже если элементы не меняются. Этого достаточно для меня.
Нельсон
2
Вы также можете установить его на уровне таблицы -><table data-order="[]">
Howdy_McGee
Это решение не будет работать для меня, но <table data-order="[]">работает для меня.
Альпер
25

Попробуй это:

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

это решит вашу проблему.

FennRussel
источник
1

В датируемых опциях поместите это:

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

   });
})

Вот решение: "aaSorting": [[2, 'asc']],

2означает, что таблица будет отсортирована по третьему столбцу
ascв порядке возрастания.

luchopintado
источник
12
Вопрос был в том, как «отключить начальную сортировку», а не в том, как указать другой порядок сортировки. Этот ответ лучше подходит для другого вопроса.
Ушел код