如何更新分页 jQuery DataTables 数据并显示它
How to update a paginated jQuery DataTables data and show it
我在更新 jQuery DataTable 的基础数据时遇到问题。为了稍微解释一下,在非分页行的情况下,我可以 select 带有 jQuery 的行,更新它并像这样 table.row($('#item' + item.id)).invalidate().draw();
[=13] 重绘 DataTables 中的更改=]
但是,在分页(不可见)行的情况下,我无法使用 jQuery select 它们来进行更新,因为 DataTables 将它们从 DOM 并将它们放在其他地方。我需要这个,因为在我的一个可见行中的编辑会影响其他行中的值,我希望反映更改。
以下是我失败的尝试之一:
我试过遍历数据,更新它并像这样重绘 table:
table.rows().iterator('row', function (context, index) {
if (this.row(index).data()[0] == item.id /*item is a variable*/) {
this.row(index).data()[3] = item.qty;
console.log(this.row(index).data());
this.row(index).draw();
}
});
数据以我想要的方式记录,但更改未显示在 DataTable 上,这让我认为这可能不是正确的方式。
请帮忙!
您可以使用ajax修改您的后台数据源,然后reloadtable修改后的数据。
终于找到无需使用的解决方案jQuery:
let idData = table.column(0).data();
let idx = idData.indexOf(item.id);
if (idx >= 0) {
stocksTable.row(idx).data([item.id, item.name, item.desc, item.quantity])).draw(false);
}
我在更新 jQuery DataTable 的基础数据时遇到问题。为了稍微解释一下,在非分页行的情况下,我可以 select 带有 jQuery 的行,更新它并像这样 table.row($('#item' + item.id)).invalidate().draw();
[=13] 重绘 DataTables 中的更改=]
但是,在分页(不可见)行的情况下,我无法使用 jQuery select 它们来进行更新,因为 DataTables 将它们从 DOM 并将它们放在其他地方。我需要这个,因为在我的一个可见行中的编辑会影响其他行中的值,我希望反映更改。
以下是我失败的尝试之一:
我试过遍历数据,更新它并像这样重绘 table:
table.rows().iterator('row', function (context, index) {
if (this.row(index).data()[0] == item.id /*item is a variable*/) {
this.row(index).data()[3] = item.qty;
console.log(this.row(index).data());
this.row(index).draw();
}
});
数据以我想要的方式记录,但更改未显示在 DataTable 上,这让我认为这可能不是正确的方式。
请帮忙!
您可以使用ajax修改您的后台数据源,然后reloadtable修改后的数据。
终于找到无需使用的解决方案jQuery:
let idData = table.column(0).data();
let idx = idData.indexOf(item.id);
if (idx >= 0) {
stocksTable.row(idx).data([item.id, item.name, item.desc, item.quantity])).draw(false);
}