時間の経過とともに大幅に改善されたデータテーブル v1.10 を使用しています。ただし、インデックス番号を追加しようとしています。
これまでのところ、インデックス番号を追加することはできましたが、検索後にレコードを元のインデックス番号のままにすることはできません。
このテーブルがあるとしましょう:
POSITION NAME
0 Tennis
1 Football
2 Basketball
Basketball で検索すると、次のように POSITION 2 が返されます。
POSITION NAME
2 Basketball
しかし、位置 2 を指定するのではなく、データテーブルは 0 (または 1 から開始したため、私の場合は 1) でもう一度カウントを開始します。
検索後にインデックス番号が正しい値を保持するようにします。
前回使用した時間:
"fnDrawCallback": function ( oSettings ) {
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 );
}
}
},
これを新しい API に変換しようとしましたが、正しい回避策が見つかりません。
これは私が使用している現在のサーバー側のコードです:
require('ssp.class.php');
$result=SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns );
$start=$_REQUEST['start'] + 1;
foreach($result['data'] as &$res){
$res["id"]=(string)$start;
$start++;
}
echo json_encode($result);
およびクライアント側:
$(document).ready(function() {
var t = $('#table-data').DataTable( {
"processing": true,
"serverSide": true,
"ajax": {
"url": "index.php",
"type": "GET"
},
"columns": [
{"data": "position"},
{"data": "name"},
]
});
});
私の問題は次のようなものです:検索/ソート時に割り当てられた行番号を jQuery データテーブルに保持させる
そこで提案されたコードを試してみましたが、データテーブル v1.10 では機能しないようです (正しい API の命名を変更しました)。