13

我正在开发 Jquery 中的数据表插件。并且必须设置数据排序的默认列,所以我的意思是:

我有一个有 4 列的表,默认情况下数据按第 1 列排序,我希望数据应按第 2 列或第 3 列排序。

如何做到这一点:

$('#tblMainTable').dataTable({
    "bJQueryUI" : true,
    "sDom" : 'R<"H"lfr>t<"F"ip<',
    "aoColumns" : [ 
        {"bSortable" : false}, 
        null, 
        null,
        null,
        {"bSortable" : false}, 
        {"bSortable" : false}
    ],
    "aaSorting": [[ 2, "desc" ]]
});

我在“aaSorting”中指定了这一点,但没有得到结果。

请解释一下?

4

3 回答 3

25

数据表api中的示例是这样的:

$(document).ready(function() {
  var oTable = $('#example').dataTable();

  // Sort immediately with columns 0 and 1
  oTable.fnSort( [ [0,'asc'], [1,'asc'] ] );
} );
于 2012-10-14T07:21:56.410 回答
7

我知道你现在有了答案,但这里有一种来自 DatatTable API 的更简单的方法

$('#tblMainTable').dataTable({
    "order": [[1, "desc"], [2, "desc"]]
});

请注意,索引从 0 '零'开始,因此该示例的意思是“第 2 列和第 3 列是默认排序列及其降序(使用 asc 表示升序)。”

于 2015-02-12T19:33:25.373 回答
2

我知道你得到了答案,但只是为了记录

您还可以使用参数从服务器端对其进行排序

params.iSortCol_0

它基本上是一个整数 0,1,2.. 表示第一、第二、第三.. 列。所以你可以在获取数据之前写一个开关..

 String sortOn = 'firstcolumnname'; //default
 switch(params.iSortCol_0 as int) {

   case 0:
     sortOn = 'id';
     break;
  ......

  }

并按您的查询顺序包含此内容

 order by ${sortOn}

希望这会有所帮助

于 2013-12-31T07:18:41.333 回答