【问题标题】:Setting default sorted column in Datatable在数据表中设置默认排序列
【发布时间】:2012-10-14 07:04:56
【问题描述】:

我正在开发 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”中指定了,但没有得到结果。

请解释一下?

【问题讨论】:

标签: javascript jquery datatables


【解决方案1】:

datatable api 中的例子是这样的:

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

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

【讨论】:

  • 我想在 2 列而不是 0 或 1 上对表格进行排序
【解决方案2】:

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

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

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

【讨论】:

  • oTable.fnSort() 出现错误。但是您的解决方案有效。谢谢!
【解决方案3】:

我知道你得到了答案,但仅供记录

也可以使用参数从服务器端排序

params.iSortCol_0

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

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

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

  }

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

 order by ${sortOn}

希望这会有所帮助

【讨论】:

    猜你喜欢
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 2021-01-19
    相关资源
    最近更新 更多