Javascript DataTable未正确筛选新插入的数据

Javascript DataTable未正确筛选新插入的数据,javascript,html,jquery,datatables,Javascript,Html,Jquery,Datatables,作为参考,我使用DataTable.js版本1.10.21,DataTables选择版本1.3.1 我已经创建了一个数据表,其中有一个“Status”列可以更新。此列上还有一个筛选器。在初始加载表后,过滤器工作正常,但在状态列中的单元格被更改后,过滤器似乎看不到更新的数据,而是仍然对旧数据进行过滤 这是用于更新状态列中特定单元格的js: 注意:我们简化了示例,以消除不存在问题的代码 var row = document.getElementById("user-id-" +

作为参考,我使用DataTable.js版本1.10.21,DataTables选择版本1.3.1

我已经创建了一个数据表,其中有一个“Status”列可以更新。此列上还有一个筛选器。在初始加载表后,过滤器工作正常,但在状态列中的单元格被更改后,过滤器似乎看不到更新的数据,而是仍然对旧数据进行过滤

这是用于更新状态列中特定单元格的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应该不再出现,因为他现在处于“非活动”状态,但正如您所看到的,他确实显示在“活动”状态过滤器中,但他的状态已更改为“非活动”
  • 过滤到其他状态并返回不会更改结果,对更新的数据进行正确过滤的唯一方法是重新加载页面


您需要使用api设置单元格的数据:

很难给出详细的答案,因为您没有发布任何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();