jQuery dataTables:点击广告应该对所有列进行降序然后升序排序
Posted
技术标签:
【中文标题】jQuery dataTables:点击广告应该对所有列进行降序然后升序排序【英文标题】:jQuery dataTables : Clicking thead should sort descending and then ascending for all columns 【发布时间】:2015-06-22 18:46:29 【问题描述】:我正在尝试更改默认排序方向。默认顺序是先升后降。我试图扭转它。
排序方向应该是独立的,应该适用于所有列(列数因不同的表而异)我必须启动数据表的脚本是通用的。
排序应该只适用于点击。
我发现了几个例子,但它们是特定于列的 https://datatables.net/examples/advanced_init/sort_direction_control.html
这是我的脚本
jQuery(function($)
$(".datatable").dataTable(
"paging": false,
"searching": false,
"info": false,
"orderCellsTop": true
);
);
【问题讨论】:
【参考方案1】:所有选项和设置都有在内部DataTable.defaults
对象中定义的默认值。此对象可通过$.fn.dataTable.defaults
进行更改。这在网站上的记录很差,但在代码中记录得很好。打开一个未缩小的 jquery.dataTables.js 并搜索 DataTable.defaults。
要反转 所有 列的默认顺序,使其变为 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/
【讨论】:
【参考方案2】:你可以在初始化的时候做:
jQuery(function ($)
$(".datatable").dataTable(
"paging": false,
"searching": false,
"info": false,
"orderCellsTop": true,
aoColumnDefs: [
orderSequence: ["desc", "asc"],
aTargets: ['_all']
]
);
);
【讨论】:
【参考方案3】:Richard 的上述回答有效,但属于传统方法。当前版本的语法类似,但更简单一些:
var myTable = $('table').DataTable(
"columnDefs": [
"orderSequence" : [ "desc", "asc" ],
"targets" : "_all"
]
);
稍微偏离主题,但请注意DataTable()
中的大写“D”,它返回一个 api 实例而不是 jquery 对象。这很重要,因为这样做可以让您在初始化后更轻松地访问 api。
【讨论】:
以上是关于jQuery dataTables:点击广告应该对所有列进行降序然后升序排序的主要内容,如果未能解决你的问题,请参考以下文章
如何从 jQuery DataTable 中的所有页面中选择所有复选框
如何在 Jquery / Datatables 中打印 [关闭]
提醒页码。关于 jQuery dataTables 页面更改事件