dataTables содержит свои строки в индексированном массиве, и нет методов API для добавления новой строки в определенный индекс или изменения index()
строки.
Это действительно имеет смысл, поскольку типичная 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-after-the-selected-row-in-jquery-datatables) – lshettyl
@AmmarCSE Я не думаю, что манипулирование datatable html с помощью jQuery - это путь. Он должен следить за строками ... Или я не прав? – filur