Jquery DataTables在排序时将订单更改为desc

Joh*_*ohn 6 sorting jquery datatables

我正在使用DataTables显示一些数据并且它工作得很好,但我想稍微自定义它而不确定如何.

我想要做的是当用户点击列标题以对该列进行排序时,我希望它最初按顺序排序而不是按升序排序.有没有办法做到这一点?

Ste*_*teD 12

看看这个:DataTables排序方向控件示例

你可以这样做:

$(document).ready(function() {
    $('#example').dataTable( {
        "aoColumns": [
            { "asSorting": [ "desc", "asc" ] }, //first sort desc, then asc
        ]
    } );
} );
Run Code Online (Sandbox Code Playgroud)


vee*_*ain 6

当前版本的 DataTables (1.10) 提供了以下方式来切换此默认排序顺序与属性orderSequencecolumnDefs(或columns但不太灵活)。

这是关于orderSequence.

"columnDefs": [
    { "orderSequence": [ "desc", "asc"], "targets": [ 1 ] },
]
Run Code Online (Sandbox Code Playgroud)

正如它还提到的,您可以强制一列在作为 DESC 或 ASC 单击时排序,您的界面可能会从中受益。

就我而言,我需要在初始单击时对不确定数量的列进行降序排列,因此我决定将示例切换为以列标题的class名称为目标,而不是将每一列明确定义为"targets":[1],"targets":[2],...[n]或以编程方式构建索引数组我关心的专栏。

您可以根据此处以多种方式定位列

最终结果是一个像这样的表定义:

<table><thead><tr>
    <th class='descendFirst'>DESCend when first clicked</th>
    <th>a normally sorted ASC->DESC->... column</th>
    ...
</tr></thead></table>
Run Code Online (Sandbox Code Playgroud)

数据表授权如下:

$("#table").dataTable({
    "columnDefs": [
        {"orderSequence": ["desc","asc"], "targets":"descendFirst" },
    ]
});
Run Code Online (Sandbox Code Playgroud)

瞧!首先对<th>标有“descendFirst”类(任意选择的描述性类名)的所有列单击降序排序。