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

Posted

技术标签:

【中文标题】使用自定义表格标签 DataTables jQuery 进行动态排序【英文标题】:Dynamic Sorting using custom table tags DataTables jQuery 【发布时间】:2014-01-05 14:35:39 【问题描述】:

使用出色的 dataTables jQuery 插件,我无法为“aaSorting”参数创建动态数组。根据文档,“aaSorting”参数采用包含列和排序顺序的数组(或数组数组)。我需要为我正在处理的表创建一个动态数组,并使用我为表 aaSorting 参数添加的 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
);

【问题讨论】:

sortCol 和 sortOrder 属性的值是多少? sortData 有什么价值? sortCol 值在本例中设置为 0,sortOrder 设置为“asc”。所以 sortData = [0, "asc"] 【参考方案1】:

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']]
   );
 );

【讨论】:

就是这样!谢谢@Binary Alchemist

以上是关于使用自定义表格标签 DataTables jQuery 进行动态排序的主要内容,如果未能解决你的问题,请参考以下文章

DataTables.net 如何仅使用自定义代码订购

datatables定义列宽自适应方法

jquery-datatables 怎么自定义排序

DataTables - 创建自定义分页样式(加载更多样式)

dataTables导出按钮显示在自定义位置?

dataTables导出按钮显示在自定义位置?