Чи є спосіб відключити початкове сортування для 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. Користувачеві це виглядає так, що нічого не відбувається, оскільки вони очікують порядку замовлення. Другим клацанням буде сортувати дес. Щоб обійти цю проблему ви можете встановити 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.