だから私はこのテーブルを持っていて、datatables.jsを使って少し機能的にするのを手伝っています。そうは言っても、このテーブルに最初にレンダリングされた6つの行があり、それらはほとんど永久に無傷のままであり、1つの例外を除いてその位置にありますが、私が取り組むことができるかどうかと思うので、現在重要なのは1つだけですこの 1 つの問題は、将来的に類似する他の問題をかなり簡単に模倣できるはずです。とにかく、ルールの例外は、6 つの静的行の最後の行が常に一番下にあることです。それで、最後の行の上に行を追加する必要があります。行 6 が新しい 7 になり、新しい行が行 6 になることを意味します。
私のテーブルはクライアント側の観点からソートされていますが、非表示の列になるものを介してソート順を保持しています。そのため、何かが実行されるたびに、並べ替えの列インデックスを調整する必要があります。これは、これまでに思いついた関数の最初の実行で実行できますが、実行後にその関数を再度トリガーすると、順序が少し狂ってしまいます。つまり、ここに私のデータテーブルコードがあります:
var oTable = $('#manager').dataTable({
"sPaginationType": "full_numbers",
"bPaginate": false,
"bFilter": false,
"bAutoWidth": true,
"sScrollY": "300px",
"bScrollCollapse": true,
"aaSortingFixed": [[0,'asc']],
"oLanguage": {
"sInfo": 'Tasks: _END_',
"sEmptyTable": "No Job/Task Sources to display currently.",
"sInfoEmpty": "No Job/Task(s)."
},
"aoColumns": [
{ "bSortable": true, "bVisible": true},
{ "bSortable": false, "sWidth":"5%", "sClass":"center"},
{ "bSortable": false, "sWidth":"85%"},
{ "bSortable": false, "sWidth":"10%"},
]
});
これが私がこれまでに思いついた関数です..
function newTaskData()
{
var lastTR = taskmanagerTable.fnGetData($('.static:last').get(0));
var currLast = parseInt(lastTR[0]);
var newLast = parseInt(lastTR[0])+1;
alert([newLast, currLast])
taskmanagerTable.fnUpdate(newLast, currLast, 0);
taskmanagerTable.fnAddData([currLast, 'checkbox', 'data source', 'E R D']);
taskmanagerTable.fnDraw();
}
そして、これは最初の実行と複数回の実行のスクリーン キャップです。
問題が何であるかを説明する方法さえわからないので、画像が役立つことを願っています