2017-07-31 87 views
0

我有一个表格,它有不同数量的列,但是一列总是存在,尽管每次都有不同的位置,这取决于要显示的数据(例如,可能是第2栏,第3栏,第4栏等)。此列我想设置为初始排序列和排序DESC。显示在此列中的数据是一个复选框,因此正在使用data-sort属性对数据进行排序,其中1表示选中,0表示未选中。对不同列数的表进行排序的数据表

我需要做的是以下,我不知道如何实现它可以在任何位置(即有不同的指数)的列。如果有列的静态数量那么这将是罚款,我将能够设置相应选项知道列索引如下:

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

但随着柱将取决于表不同数量内容然后我需要相应地引用列。我需要:

  • 将初始排序列设置为此列;
  • 设置排序顺序为DESC。

< < UNTESTED >> - 我也需要相应地改变数据排序值(0或1)时,复选框被选中/未选中状态。我还没有测试过,但如果有答案,我会很感激反馈意见 - datatables是否会选择对数据排序属性的更改并相应地调整排序?如果不是,那么在data-sort属性更改之后,我可以传递给datatable进行重新排序?

TIA

回答

0

,因为我无法找到任何方式实现这一目标使用的数据表我也做了以下内容:

的HTML

对于需要进行排序的列添加data-order属性与'asc'或'desc'。

<th data-order="desc">Column Heading</th> 

脚本

var ordering = []; 
var theTable = jQuery('#example').DataTable(); 
theTable.columns().every(function(i) { 
    var header = this.header(); 
    if (jQuery(header).is('[data-order]')) { 
     var dataOrder = jQuery(header).attr('data-order'); 
     var theOrder = [ i, dataOrder ]; 
     ordering.push(theOrder); 
    } 
}); 
if(ordering.length > 0) { 
    theTable.order(ordering).draw(); 
} 
相关问题