2012-10-14 74 views
13

我正在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”,但没有得到结果。

请说明一下吗?

+2

http://live.datatables.net/amipoq/8/edit这至少工作,似乎问题在其他地方 –

回答

25

datatable api的例子确实是这样的:

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

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

我想排序表上2列不是0或1 –

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} 

希望包括这个以这将有助于

7

我知道你现在有答案,但是这里来自DatatTable API的更简单的方式

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

请注意索引是从0 'Zero',所以这个例子的意思是“第2列和第3列是默认排序列及其降序(使用asc升序)”。

+0

oTable.fnSort()是给一个错误。但是你的解决方案的工作谢谢! –