jQuery dataTables:点击 thead 应该对所有列进行降序排序,然后升序排序
jQuery dataTables : Clicking thead should sort descending and then ascending for all columns
我正在尝试更改默认排序方向。默认顺序是先升后降。我正试图扭转它。
排序方向应该是独立的,并且应该适用于所有列(列数因不同的表而异)我必须启动数据表的脚本是通用的。
排序应仅在点击时应用。
我找到了几个示例,但它们是特定于列的 https://datatables.net/examples/advanced_init/sort_direction_control.html
这是我的脚本
jQuery(function($) {
$(".datatable").dataTable({
"paging": false,
"searching": false,
"info": false,
"orderCellsTop": true
});
});
所有选项和设置都有在内部 DataTable.defaults
对象中定义的默认值。此对象可用于通过 $.fn.dataTable.defaults
进行更改。这在网站上的记录很少,但在代码中有很好的记录。打开一个 none 缩小的 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/
你可以在初始化的时候做:
jQuery(function ($) {
$(".datatable").dataTable({
"paging": false,
"searching": false,
"info": false,
"orderCellsTop": true,
aoColumnDefs: [
{
orderSequence: ["desc", "asc"],
aTargets: ['_all']
}
]
});
});
Richard 的上述回答有效,但却是遗留方法。当前版本的语法相似且更简单:
var myTable = $('table').DataTable({
"columnDefs": [
{
"orderSequence" : [ "desc", "asc" ],
"targets" : "_all"
}
]
});
稍微偏离主题但请注意 DataTable()
中的 capital "D" 其中 returns 一个 api 实例而不是 jquery 对象.这很重要,因为这样做可以让您在初始化后更轻松地访问 api。
通过 Grue 的答案扩展 @Eaten,如果需要,我们可以使用相同的 orderSequence API 仅使用 HTML 来反转排序顺序。
在<thead>
下,我们可以将<th>
改成如下:
<th data-order-sequence='[ "desc", "asc" ]'>Amount</th>
我正在尝试更改默认排序方向。默认顺序是先升后降。我正试图扭转它。
排序方向应该是独立的,并且应该适用于所有列(列数因不同的表而异)我必须启动数据表的脚本是通用的。
排序应仅在点击时应用。
我找到了几个示例,但它们是特定于列的 https://datatables.net/examples/advanced_init/sort_direction_control.html
这是我的脚本
jQuery(function($) {
$(".datatable").dataTable({
"paging": false,
"searching": false,
"info": false,
"orderCellsTop": true
});
});
所有选项和设置都有在内部 DataTable.defaults
对象中定义的默认值。此对象可用于通过 $.fn.dataTable.defaults
进行更改。这在网站上的记录很少,但在代码中有很好的记录。打开一个 none 缩小的 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/
你可以在初始化的时候做:
jQuery(function ($) {
$(".datatable").dataTable({
"paging": false,
"searching": false,
"info": false,
"orderCellsTop": true,
aoColumnDefs: [
{
orderSequence: ["desc", "asc"],
aTargets: ['_all']
}
]
});
});
Richard 的上述回答有效,但却是遗留方法。当前版本的语法相似且更简单:
var myTable = $('table').DataTable({
"columnDefs": [
{
"orderSequence" : [ "desc", "asc" ],
"targets" : "_all"
}
]
});
稍微偏离主题但请注意 DataTable()
中的 capital "D" 其中 returns 一个 api 实例而不是 jquery 对象.这很重要,因为这样做可以让您在初始化后更轻松地访问 api。
通过 Grue 的答案扩展 @Eaten,如果需要,我们可以使用相同的 orderSequence API 仅使用 HTML 来反转排序顺序。
在<thead>
下,我们可以将<th>
改成如下:
<th data-order-sequence='[ "desc", "asc" ]'>Amount</th>