我在更新jQuery DataTable的基础数据时遇到麻烦。为了说明这一点,在非分页行的情况下,我可以使用jQuery选择该行,对其进行更新,然后像这样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中显示,这使我认为这可能不是正确的方式。
请帮助!
答案 0 :(得分:2)
您可以使用ajax修改您的后端数据源,然后使用reload修改表数据。
答案 1 :(得分:0)
最后找到了无需使用jQuery的解决方案:
SELECT vID, fID, Recorded,
MAX(CASE WHEN MeasureDSC = 'First' THEN RESULT END) AS First,
MAX(CASE WHEN MeasureDSC = 'Next' THEN RESULT END) AS Next
FROM #temp
GROUP BY vID, fID, Recorded;