繁体   English   中英

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

[英]How to update a paginated jQuery DataTables data and show it

我在更新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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM