jQuery dataTables: щелчок по кнопке должен сортировать по убыванию, а затем по возрастанию для всех столбцов
Я пытаюсь изменить направление сортировки по умолчанию. По умолчанию используется порядок по возрастанию, а затем по убыванию. Я пытаюсь обратить его вспять.
Направление сортировки должно быть независимым и применяться ко всем столбцам( количество столбцов зависит от разных таблиц ) сценарий, который я должен инициировать datatable, является универсальным.
Сортировка должна применяться только по щелчку мыши.
Я нашел несколько примеров, но они специфичны для столбцов https://datatables.net/examples/advanced_init/sort_direction_control.html
Вот мой сценарий
jQuery(function($) {
$(".datatable").dataTable({
"paging": false,
"searching": false,
"info": false,
"orderCellsTop": true
});
});
3 ответа:
Все параметры и настройки имеют значения по умолчанию, определенные во внутреннем объекте
DataTable.defaults
. Этот объект доступен для изменения через$.fn.dataTable.defaults
. Это плохо задокументировано на веб-сайте, но очень хорошо задокументировано в коде. Откройте none minified jquery.таблицы данных.js и поиск DataTable.по умолчанию., чтобы изменить порядок по умолчанию для всех столбцов, так что он становится
desc
,asc
:$.fn.dataTable.defaults.column.asSorting = ['desc', 'asc'];
Установить начальный порядок для первого столбца в desc
$.fn.dataTable.defaults.aaSorting = [[0,'desc']];
Точно так же вы можете просто изменить значения по умолчанию, так что вам не нужно устанавливать какие-либо общие параметры в вашем
dataTable()
вообще :$.fn.dataTable.defaults.bPaginate = false; //paging: false $.fn.dataTable.defaults.bFilter = false; //searching: false $.fn.dataTable.defaults.bInfo = false; //info: false $.fn.dataTable.defaults.bSortCellsTop = true; //orderCellsTop: true
См. демонстрацию -> http://jsfiddle.net/f31pncb4/
Это можно сделать при инициализации:
jQuery(function ($) { $(".datatable").dataTable({ "paging": false, "searching": false, "info": false, "orderCellsTop": true, aoColumnDefs: [ { orderSequence: ["desc", "asc"], aTargets: ['_all'] } ] }); });
Ответ Ричарда выше работает, но является подходом наследия. Синтаксис для текущих версий похож и немного проще:
var myTable = $('table').DataTable({ "columnDefs": [ { "orderSequence" : [ "desc", "asc" ], "targets" : "_all" } ] });
Немного не по теме, но обратите внимание на заглавную букву " D " в
DataTable()
, которая возвращает экземпляр api вместо объекта jquery. Это важно, так как выполнение этого способа облегчает доступ к api после инициализации.