сортировка по умолчанию в jquery datatables - PullRequest
54 голосов
/ 27 декабря 2011

Я пытаюсь установить сортировку по умолчанию для второго столбца в моем файле данных jquery.По умолчанию он сортируется по индексу 0. Я использую синтаксис "aaSorting": [[ 1, "asc" ]], но он выделяет столбец, который мне не нужен при начальной загрузке.Как установить сортировку по умолчанию для определенного столбца, не выделяя его, как если бы сортировка не выполнялась, а индексный столбец 0 использовался.

Ответы [ 9 ]

55 голосов
/ 27 декабря 2011

Существует несколько параметров:

  1. Сразу после инициализации DataTables удалите классы сортировки для элемента TD в TBODY.

  2. Отключить сортировку классов, используя http://datatables.net/ref#bSortClasses.Проблема в том, что он отключит классы сортировки для пользовательских запросов на сортировку - что может или не может быть тем, что вы хотите.

  3. Пусть ваш сервер выведет таблицу в требуемом порядке сортировки,и не применяйте сортировку по умолчанию к таблице (aaSorting:[]).

47 голосов
/ 15 января 2013

Вот фактический код, который делает это ...

$(document).ready(function()
{
  var oTable = $('#myTable').dataTable();

  // Sort immediately with column 2 (at position 1 in the array (base 0). More could be sorted with additional array elements
  oTable.fnSort( [ [1,'asc'] ] );

  // And to sort another column descending (at position 2 in the array (base 0).
  oTable.fnSort( [ [2,'desc'] ] );
} );

Чтобы не выделять столбец, измените CSS следующим образом:

table.dataTable tr.odd td.sorting_1 { background-color: transparent; }
table.dataTable tr.even td.sorting_1 { background-color: transparent; }
15 голосов
/ 03 июля 2012

Вы можете использовать функцию fnSort, подробности см. Здесь:

http://datatables.net/api#fnSort

3 голосов
/ 29 января 2014

Лучший вариант - отключить сортировку и просто подавать данные с желаемым порядком сортировки (из базы данных или другого источника). Попытайтесь добавить это к вашему datatable: "bSort": false

0 голосов
/ 14 августа 2017

Просто включите следующий код:

    $(document).ready(function() {
        $('#tableID').DataTable( {
            "order": [[ 3, "desc" ]]
        } );
    } 
);

Полная справочная статья с примером:

https://datatables.net/examples/basic_init/table_sorting.html

0 голосов
/ 03 января 2017

Это сработало для меня:

       jQuery('#tblPaging').dataTable({
            "sort": true,
            "pageLength": 20
        });
0 голосов
/ 14 декабря 2016

используйте это, это работает для меня: "заказ": [[1, "ASC"]],

0 голосов
/ 01 ноября 2016

У меня тоже была эта проблема.Я использовал опцию stateSave, и это создало эту проблему.
Удалите эту опцию, и проблема будет решена.

0 голосов
/ 28 сентября 2016

Datatables поддерживает атрибуты данных data5 * HTML5 для этой функции.

Поддерживает несколько столбцов в порядке сортировки (на основе 0)

<table data-order="[[ 1, 'desc' ], [2, 'asc' ]]">
    <thead>
        <tr>
            <td>First</td>
            <td>Another column</td>
            <td>A third</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>z</td>
            <td>1</td>
            <td>$%^&*</td>
        </tr>
        <tr>
            <td>y</td>
            <td>2</td>
            <td>*$%^&</td>
        </tr>
    </tbody>
</table>

Теперь мой jQuery просто $('table').DataTables(); и мои вторые и третьи столбцы отсортированы в порядке desc / asc.

Вот некоторые другие приятные атрибуты для <table>, которые я использую повторно:

data-page-length="-1" установитдлина страницы для всех (пропуск 25 для длины страницы 25) ...

data-fixed-header="true" ... Сделать предположение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...