jQuery datatables сортировка по умолчанию
Я пытаюсь установить сортировку по умолчанию во второй столбец в моем jQuery datatable. По умолчанию сортируется по индексу 0. Я использую "aaSorting": [[ 1, "asc" ]]
синтаксис, но он выделяет столбец, который я не хочу при начальной загрузке. Как я могу установить тип по умолчанию определенного столбца без выделения столбца, как если бы сортировка не была задействована и использовался столбец индекса 0.
9 ответов
есть несколько вариантов:
сразу после инициализации DataTables удалите классы сортировки элемента TD в теле.
отключить классы сортировки с помощьюhttp://datatables.net/ref#bSortClasses . Проблема в том, что он отключит классы сортировки для запросов сортировки пользователей, которые могут быть или не быть тем, что вы хотите.
пусть ваш сервер выведет таблицу в вашем требуется порядок сортировки, и не применяйте сортировку по умолчанию в таблице (
aaSorting:[]
).
вот фактический код, который это делает...
$(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; }
лучший вариант-отключить сортировку и просто поток данных с требуемым порядком сортировки (из базы данных или другого источника). Попробуйте добавить это в свой "datatable": "bSort": false
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"
установит длину страницы для всех (pass 25 для длины страницы 25)...
data-fixed-header="true"
... Угадайте
У меня тоже эта проблема. Я использовал stateSave
вариант, и это сделало эту проблему.
Удалите эту опцию, и проблема будет решена.
просто включите следующий код:
$(document).ready(function() {
$('#tableID').DataTable( {
"order": [[ 3, "desc" ]]
} );
}
);
полная справочная статья с примера:
https://datatables.net/examples/basic_init/table_sorting.html