在Datatable中设置默认排序列

时间:2012-10-14 07:04:56

标签: javascript jquery datatables

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

我有一个包含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”中指定了但没有得到结果。

请说清楚一点?

3 个答案:

答案 0 :(得分:25)

datatable api中的示例是这样的:

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

  // Sort immediately with columns 0 and 1
  oTable.fnSort( [ [0,'asc'], [1,'asc'] ] );
} );

答案 1 :(得分:7)

我知道你现在有了答案,但是从DatatTable API开始,这是一个更简单的方法

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

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

答案 2 :(得分: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}

希望这会有所帮助