作为参考,我使用的是 DataTable.js 版本 1.10.21 和 DataTables Select 版本 1.3.1我创建了一个带有可以更新的“状态”列的数据表。此列也有一个过滤器。过滤器在表的初始加载后工作完美,但在状态列中的单元格已更改后,过滤器似乎没有看到更新的数据,而是仍然过滤旧数据。这是用于更新状态列中特定单元格的 js:注意:我们已经简化了示例以消除不是问题的代码。var row = document.getElementById("user-id-" + userId);statusColumn = row.children[4];statusColumn.innerText = "inactive";setTimeout(function(){ $('.dataTable').DataTable().reload();},2000);我尝试使用 reload()、draw() 并使用 dataTable() 重新初始化整个表。没有函数允许表格使用新值正确过滤。过滤器确实有效,但它根据表中不再存在的旧值进行过滤。下面是两个屏幕截图作为视觉示例。第一个屏幕截图:我正在查看新加载的表格并过滤状态“活动。然后我要将 Aaron McClendon(第一行)更改为“不活动”。第二张截图:我再次搜索状态“活动”。Aaron 不应再出现,因为他现在处于“不活跃”状态,但正如您所见,他确实出现在“活跃”状态过滤器中,但他的状态已更改为“不活跃”。过滤到其他状态并返回不会改变结果,开始正确过滤更新数据的唯一方法是重新加载页面。
1 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
您需要使用 api 设置单元格的数据: https: //datatables.net/reference/api/cell().data()
很难给出详细的答案,因为您没有发布任何 html 标记或足够的 javascript,但根据您提供的内容,它可能是这样的:
var table = $('.dataTable').DataTable();
var row = document.getElementById("user-id-" + userId);
var statusColumn = row.children[4];
var cell = table.cell( statusColumn );
cell.data( "inactive" ).draw();
添加回答
举报
0/150
提交
取消