2013-07-28 5 views
5

Wie kann ich eine Operation fnUpdate in einer Zeile ausführen, die derzeit aufgrund der Paginierung nicht angezeigt wird?Zeile aktualisieren, die wegen Paginierung/Sortierung ausgeblendet ist

Ich entwickle eine Webanwendung, die zwei DataTable-Instanzen in verschiedenen div-Containern verwendet. Wenn ein Container sichtbar ist, wird der andere über jQuery.fadeOut()/fadeIn()

ausgeblendet. In einem Div habe ich eine Übersichtstabelle, die eine Auswahl der Datenfelder zeigt, die im anderen, versteckten Container verfügbar sind. Die Zeilen zwischen diesen Tabellen werden über ein _id#-Suffix der Zeilen-ID zugeordnet. Beispielsweise wird die Zeilen-ID 4_performance_3 in der Übersichtstabelle der Zeilen-ID timeline_task_3 in der vollständigen Detailtabelle zugeordnet.

Wenn die Zeilen-ID timeline_task_3 aufgrund von Paginierung und/oder Sortierung nicht sichtbar ist, wie kann ich die Zeile aktualisieren, wenn ich Änderungen an 4_performance_3 vorgenommen habe?

Im Codeausschnitt ist element null aufgrund der Reihe ID aus der Sicht über die Paginierung

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"); 

    } 

} 

Antwort

0

Nun, die verborgene Tabelle hat möglicherweise nicht auswählbaren Knoten zu sein ... aber es hat sicher ist es eigene Daten !

Der einfachste Weg ist es, eine Bezugnahme auf die beiden Tabellen zu halten:

var mySummary = $('#exampleSum').dataTable(); 
var myTimeline = $('#exampleLine').dataTable(); 

Jetzt können Sie auf die Daten jeder Tabelle bekommen immer mit myTimeline.fnGetData(). Vielleicht müssen Sie eine extra unsichtbare Datenspalte hinzufügen, damit Sie leichter zwischen den beiden Tabellen referenzieren können. Die Funktion FnUpdate() funktioniert auch mit den Indizes von FnGetData().

Ich bin mir nicht sicher, aber vielleicht müssen Sie eine myTimeline.fnDraw() direkt vor oder nach der Tabelle wieder sichtbar werden, um auszulösen, um die neuen Daten anzuzeigen.

Verwandte Themen