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)
当前版本的 DataTables (1.10) 提供了以下方式来切换此默认排序顺序与属性orderSequence
下columnDefs
(或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”类(任意选择的描述性类名)的所有列单击降序排序。