让jQuery的数据表保持分配行号搜索时/整理(Make jQuery datatables kee

2019-10-17 03:57发布

我有下面的代码来创建jQuery的数据表行号:

"fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ 
        var index = iDisplayIndexFull + 1; 
        $('td:eq(0)', nRow).html(index); 
        return nRow;
     },

然而,当我搜索了一定值时,行号更新。 这是预期。 我的问题是,反正是有让行数保持不变,它们最初创建后?

例:

 Initial output
 1     Team1
 2     Team2
 3     Team3
 4     Team4
 5     Team5

 After Searching
 2     Team2
 5     Team5

这可能吗?

Answer 1:

"fnDrawCallback": function ( oSettings ) {
 /* Need to redo the counters if filtered or sorted */
 if ( oSettings.bSorted || oSettings.bFiltered )
 {
 for ( var i=0, iLen=oSettings.aiDisplay.length ; i<iLen ; i++ )
 {
 $('td:eq(0)', oSettings.aoData[ oSettings.aiDisplay[i] ].nTr ).html( i+1 );
 }
 }
 }


Answer 2:

你可以存储在原来的ID aData

aData.index = iDisplayIndexFull + 1;

然后,你可以在以后与访问:

var index = oTable.fnGetData(your_row).index;


Answer 3:

你可以设置一个data最初在行属性如下所示:

"fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ 
        var index = iDisplayIndexFull + 1; 
        $('td:eq(0)', nRow).attr('data-index',$('td:eq(0)', nRow).attr('data-index')||index);
        $('td:eq(0)', nRow).html($('td:eq(0)', nRow).attr('data-index',index));
        return nRow;
     },


文章来源: Make jQuery datatables keep the row number assigned when searching/sorting