Подтвердить что ты не робот

Параметры сортировки по умолчанию для jquery datatables

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

4b9b3361

Ответ 1

Есть несколько вариантов:

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

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

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

Ответ 2

Вот реальный код, который делает это...

$(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; }

Ответ 4

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

Ответ 5

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

Он поддерживает несколько столбцов в порядке сортировки (основан на 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" задает длину страницы для All (проход 25 для длины страницы 25)...

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

       jQuery('#tblPaging').dataTable({
            "sort": true,
            "pageLength": 20
        });