數據表保持在索引數組其行,並且存在用於在特定的索引添加新行或改變行的index()
沒有API方法。
這實際上是有道理的,因爲一個典型的dataTable總是排序/有序或過濾的數據,而不是靜態指標。而當你從服務器接收數據,或者想要將數據傳遞給服務器時,永遠不要使用靜態客戶端index()
。
但是,如果你仔細想想,你仍然可以重新排列行和通過在特定的指數的代碼非常簡單,只需重新排序的數據插入行。當添加新行時,將數據從最後一行(插入的行)交換到最後一行,然後將數據從最後一行交換到最後一行,依此類推,直到您到達所需的索引插入行。
[0][1][2][3][4->][<-newRow]
[0][1][2][3->][<-newRow][4]
[0][1][2->][<-newRow][3][4]
實施例,其中,當點擊鼠標的索引處插入新行:
$("#example").on('click', 'tbody tr', function() {
var currentPage = table.page();
//insert a test row
count++;
table.row.add([count, count, count, count, count]).draw();
//move added row to desired index (here the row we clicked on)
var index = table.row(this).index(),
rowCount = table.data().length-1,
insertedRow = table.row(rowCount).data(),
tempRow;
for (var i=rowCount;i>index;i--) {
tempRow = table.row(i-1).data();
table.row(i).data(tempRow);
table.row(i-1).data(insertedRow);
}
//refresh the current page
table.page(currentPage).draw(false);
});
演示 - >http://jsfiddle.net/mLh08nyg/
http://stackoverflow.com/questions/391314/jquery-insertat – AmmarCSE
一些洞察到這樣的問題:[http://datatables.net/forums/discussion/660/how-to-add-a-row-at -a-specific-index/p1](http://datatables.net/forums/discussion/660/how-to-add-a-row-at-a-specific-index/p1)以及一個並非如此 - 漂亮的解決方法:[http://stackoverflow.com/questions/22387948/add-a-row-after-the-selected-row-in-jquery-datatables](http://stackoverflow.com/questions/22387948/add -a-row-selected-row-in-jquery-datatables) – lshettyl
@AmmarCSE我不認爲使用jQuery來操縱數據表html是最好的選擇。它需要跟蹤行...或者我錯了嗎? – filur