如何更新分页的 jQuery DataTables 数据并显示它



我在更新jQuery DataTable的基础数据时遇到问题。为了稍微解释一下这一点,在非分页行的情况下,我可以使用jQuery选择该行,更新它并在DataTables中重新绘制更改,如下所示table.row($('#item' + item.id)).invalidate().draw();

但是,在分页(不可见)行的情况下,我无法使用jQuery选择它们以进行更新,因为DataTables将它们从DOM中删除并保存在其他地方。我需要这个,因为在我的一个可见行中的编辑会影响其他行中的值,我希望反映更改。

以下是我所做的尝试之一,但没有运气:

我尝试遍历数据,更新数据并重新绘制表,如下所示:

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 修改后端数据源,然后在修改时重新加载表数据。

终于找到了一个不需要使用 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);
}

最新更新