使用自定义表标签DataTables jQuery进行动态排序

时间:2013-12-17 17:28:07

标签: javascript jquery datatables

使用优秀的dataTables jQuery插件,我无法为“aaSorting”参数创建动态数组。根据文档,“aaSorting”参数采用包含列和排序顺序的数组(或数组数组)。我需要为我正在处理的表创建一个动态数组,并使用我为表aaSorting param添加的sortCol和sortOrder的自定义表属性的值。我以为我能做到这一点......

var sortCol = $('#mytable').attr('sortCol');
var sortOrder = $('#mytable').attr('sortOrder');
var sortData = [];
if(sortCol != '' && sortOrder != ''){
     sortData[sortCol] = sortOrder;
}

然后在我的dataTable初始化中,使用sortData var作为“aaSorting”参数的值。但是,这不起作用。任何人都可以提供有关如何构造数组的任何见解,以便dataTables使用它进行排序。

var myTableObject = dataTable({
     "oLanguage": "Search",
     "aaSorting": sortData
});

1 个答案:

答案 0 :(得分:3)

aaSorting是一个数组数组。每个嵌套数组都有两个元素。第一个是列号,第二个是顺序(即asc或desc)。您正在使用一维数组进行aaSorting,请尝试[[0, "asc"]]

更新

var sortCol = $('#mytable').attr('sortCol');
var sortOrder = $('#mytable').attr('sortOrder');
var sortData = [];
if(sortCol != '' && sortOrder != ''){
     sortData.push( [sortCol, sortOrder] );
}

实施例

// Sort by 3rd column first, and then 4th column
$(document).ready( function() {
  $('#example').dataTable( {
    "aaSorting": [[2,'asc'], [3,'desc']]
  } );
} );