テーブル全体を再描画せずに JQuery DataTable に行を追加するにはどうすればよいですか?
私が望む動作は、(並べ替えに基づいて) 正しい場所を見つけて、テーブルのスクロール位置とページネーション (ある場合) を維持しながら、行をテーブルに挿入することです。
テーブル全体を再描画せずに JQuery DataTable に行を追加するにはどうすればよいですか?
私が望む動作は、(並べ替えに基づいて) 正しい場所を見つけて、テーブルのスクロール位置とページネーション (ある場合) を維持しながら、行をテーブルに挿入することです。
私は同じ問題に直面していました。これに対して私が見つけた解決策は、 fnStandingRedraw http://datatables.net/plug-ins/api/fnStandingRedrawという名前の新しい関数でした。この関数を使用できるように上記のコードを追加しましたが、
$.fn.dataTableExt.oApi.fnStandingRedraw = function (oSettings) {
if (oSettings.oFeatures.bServerSide === false) {
var before = oSettings._iDisplayStart;
oSettings.oApi._fnReDraw(oSettings);
// iDisplayStart has been reset to zero - so lets change it back
oSettings._iDisplayStart = before;
oSettings.oApi._fnCalculateEnd(oSettings);
}
// draw the 'current' page
oSettings.oApi._fnDraw(oSettings);
};
その後、次のコマンドを実行します。
theTable.fnAddData([reply], false);
theTable.fnStandingRedraw();
ここで、
theTable : はデータテーブル変数です (var theTable = $('#example').dataTable();)。
返信:私のデータテーブルの行に追加する情報です。http://datatables.net/plug-ins/api/fnStandingRedrawの詳細。
最初のコマンドは、再描画せずにテーブルに行を追加します。この後、新しい行はテーブルに表示されません。
2 番目のコマンドはテーブルを再描画するため、新しい raw が表示されますが、現在のページ設定は保持されます。
これは私にとってはうまくいきました。
使用するdataTable().fnAddData()
http://datatables.net/ref#fnAddData
例:
http://www.datatables.net/release-datatables/examples/api/add_row.html