1

我有以下代码在 jQuery Datatables 中创建行号:

"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

这可能吗?

4

3 回答 3

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 );
 }
 }
 }
于 2014-05-30T06:11:38.500 回答
0

您可以将原始 id 存储在aData

aData.index = iDisplayIndexFull + 1;

然后,您可以稍后通过以下方式访问它:

var index = oTable.fnGetData(your_row).index;
于 2012-08-24T22:06:24.057 回答
0

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;
     },
于 2012-08-24T22:01:24.243 回答