Jquery数据表在指定的索引处添加新行

时间:2013-05-20 05:04:20

标签: jquery datatable

是否有可能在Jquery数据表中的第2 /第3行/第n行之后添加新行? 我用这个方法fnAddData([...])。 它按预期工作。 但我需要在两行之间添加记录。 请有人帮帮我..

3 个答案:

答案 0 :(得分:3)

我与你分享我所做的事情:

// for example you want to insert after the 2nd row
var numberOfRowAfterYouWantToInsert = 2;
var rowAfterYouWantToInsert = $("#yourTableId tr").eq( numberOfRowAfterYouWantToInsert );
var rowsAfter_rowAfterYouWantToInsert = rowAfterYouWantToInsert.nextAll();
var standbyTable = $("<table>");
// remove rows by putting over to a standby table
standbyTable.append( rowsAfter_rowAfterYouWantToInsert );
// just did an empty tr here
var tr = $("<tr>");
// append it
$("#yourTableId").append( tr );
// and put back those removed rows to the original table
$("#tableID").append( rowsAfter_rowAfterYouWantToInsert );

这个解决方案简单易读,主要优点:它有效:)希望它可以帮到你!

编辑: 我发现有一个更简单的解决方案:

// for example you want to insert after the 2nd row
var numberOfRowAfterYouWantToInsert = 2;
var rowAfterYouWantToInsert = $("#yourTableId tr").eq( numberOfRowAfterYouWantToInsert );
// new row with two cells
var tr = $("<tr><td>asd</td><td>qwe</td></tr>");
rowAfterYouWantToInsert.after( tr );

答案 1 :(得分:1)

这对我有用。从数据表中获取数组,拼接所需索引处的值,然后重绘数据表。这样,如果您必须进行重绘 - 您附加的值仍将在表格中。

var newRow = [1, 2, 3]; // new row in the datatable
var index = 4; // index for the new row to be added
var currentRows = datatable.data().toArray();  // current table data
currentRows.splice(index, 0, newRow);

datatable.clear();
datatable.rows.add(currentRows);
datatable.draw();

答案 2 :(得分:0)

将行添加到表中(在其中将要在行之前插入的表wot的DOM引用放在其中):

var html = "<tr><td>a</td><td>b</td></tr>";
$(tr).after(html);

接下来,使用此功能(其中tbServer是表ID)重置表:

function ResetDataTable() {
    $("#tbServer thead tr").remove();
    var oHeadRow = $(".dataTables_scrollHeadInner").find("table thead tr").clone();
    $("#tbServer thead").append(oHeadRow);
    var oTbl = $("#tbServer").clone();
    oTable.destroy();
    $("#tbServer").remove();
    $("#divTbl").append(oTbl)
    SetupDataTable();
}