Есть ли способ отключить начальную сортировку для 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": []
  });
});

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


1

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

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

   });
})

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

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


12
Вопрос был в том, как «отключить начальную сортировку», а не в том, как указать другой порядок сортировки. Этот ответ лучше подходит для другого вопроса.
Ушел код
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.