我有以下代码在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
这可能吗?
答案 0 :(得分: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 );
}
}
}
答案 1 :(得分: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;
},
答案 2 :(得分:0)
您可以将原始ID存储在aData
:
aData.index = iDisplayIndexFull + 1;
然后,您可以稍后使用以下命令访问它:
var index = oTable.fnGetData(your_row).index;