如何对当前由于分页而不在 View 中的行执行 fnUpdate 操作?
我正在开发一个 Web 应用程序,该应用程序在不同的 div 容器中使用两个 DataTable 实例。当一个容器可见时,另一个容器通过 jQuery.fadeOut()/fadeIn()
在一个 div 中,我有一个汇总表,其中显示了另一个隐藏容器中可用的数据字段的选择。这些表之间的行通过 _id# 后缀映射到行 ID,例如,汇总表中的行 id 4_performance_3 映射到行 id timeline_task_3 在完整的详细信息表中。
如果行 ID timeline_task_3 由于分页和/或排序而不可见,如果我已将更改应用到 4_performance_3,如何更新该行?
在代码片段中,由于行 ID 通过分页无法查看,element 为 null
var tableArray = timelineTable.fnGetNodes();
var elemSplit;
for (var i = 0; i < tableArray.length; i++) {
elemSplit = tableArray[i].id.split("_");
if (elemSplit[2] == currentTask.id){
element = document.getElementById(tableArray[i].id);
timelineTable.fnUpdate(currentTask.internal, element, 0, false);
timelineTable.fnUpdate(currentTask.dueDate, element, 1, false);
timelineTable.fnUpdate(currentTask.label, element, 4, false);
timelineTable.fnUpdate(currentTask.complete, element, 6, false);
timelineTable.fnUpdate(currentTask.comments.length, element, 7, false);
timelineTable.fnSort([[1, "asc"]]);
console.log("updated timeline tasks");
}
}
请您参考如下方法:
嗯,隐藏表可能没有可选择的节点...但它肯定有自己的数据!
最简单的方法是保存对两个表的引用:
var mySummary = $('#exampleSum').dataTable();
var myTimeline = $('#exampleLine').dataTable();
现在您可以随时使用 myTimeline.fnGetData() 获取每个表的数据。也许您需要添加额外的不可见数据列,以便您可以更轻松地在两个表之间进行引用。 fnUpdate() 函数还可以使用 fnGetData() 中的索引。
我不确定,但也许您必须在表格再次可见之前或之后调用 myTimeline.fnDraw() 才能触发显示新数据。
