如何对由于分页而当前不在视图范围内的行执行fnUpdate
操作?
我正在开发一个在不同div容器中使用两个DataTable实例的Web应用程序。当一个容器可见时,另一个容器将通过jQuery.fadeOut()
/ fadeIn()
在一个div中,我有一个汇总表,显示了另一个隐藏容器中可用的数据字段选择。这些表之间的行通过_id#
后缀映射到行ID。例如,摘要表中的行标识4_performance_3
映射到完整详细信息表中的行标识timeline_task_3
。 / p>
如果由于分页和/或排序而无法显示行ID timeline_task_3
,如果我将更改应用于4_performance_3
,如何更新该行?
在代码段中,由于行ID通过分页不在视图范围内,element
为空
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");
}
}
答案 0 :(得分:0)
好吧,隐藏的表可能没有可选择的节点......但它肯定有它自己的数据!
最简单的方法是保存对两个表的引用:
var mySummary = $('#exampleSum').dataTable();
var myTimeline = $('#exampleLine').dataTable();
现在,您始终可以使用myTimeline.fnGetData()获取每个表的数据。也许您需要添加一个额外的不可见数据列,以便您可以更轻松地在两个表之间引用。 fnUpdate()函数也适用于fnGetData()的索引。
我不确定,但也许你必须在表再次可见之前或之后调用myTimeline.fnDraw()以触发显示新数据。