我有一个具有不同数量列的表,但是总会有一列,尽管每次都有不同的位置,具体取决于要显示的数据(例如,它可能是第2列,第3列,列4等)。我想将此列设置为初始排序列并排序DESC。此列中显示的数据是一个复选框,因此数据排序属性用于对数据进行排序,其中1表示已选中,0表示未选中。
我需要做的是以下内容,我不知道如何在可以处于任何位置的列(即具有不同的索引)上实现它。如果有一个静态的列数,那么这将是正常的,因为我可以相应地设置选项知道列索引如下:
$('#example').dataTable({
"order": [[ 2, 'desc' ]]
});
但是由于列的内容根据表内容而不同,因此我需要相应地引用该列。我需要:
<< UNTESTED>> - 当选中/取消选中复选框时,我还需要相应地更改数据排序值(0或1)。我还没有测试过,但如果答案可用,我会很感激反馈 - 数据表是否会对数据排序属性进行更改并相应地调整排序?如果没有,在更改data-sort属性后,我可以传递给datatables以重新排序?
TIA
答案 0 :(得分:0)
由于我找不到使用数据表实现此目的的任何方法,我已完成以下操作:
HTML
对于需要排序的列,请在' asc'中添加data-order
属性。或者' 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();
}