2013-07-28 11 views
5

Jak mogę wykonać operację fnUpdate w wierszu, który jest obecnie niedostępny z powodu paginacji?Zaktualizuj wiersz, który jest ukryty z powodu paginacji/sortowania

Zajmuję się tworzeniem aplikacji internetowej, która wykorzystuje dwie instancje DataTable w różnych kontenerach div. Gdy jeden kontener jest widoczny, drugi jest ukryty za pomocą jQuery.fadeOut()/W jednym dziale mam tabelę podsumowującą, która pokazuje wybór pól danych, które są dostępne w innym, ukrytym kontenerze. Wiersze między tymi tabelami są odwzorowywane za pomocą przyrostka _id# na identyfikator wiersza, na przykład identyfikator wiersza 4_performance_3 w tabeli podsumowania tabeli na identyfikator wiersza timeline_task_3 w tabeli szczegółów.

Jeśli numer wiersza timeline_task_3 jest niewidoczny z powodu paginacji i/lub sortowania, w jaki sposób mogę zaktualizować wiersz, jeśli zastosowałem zmiany do 4_performance_3?

we fragmencie kodu, element jest nieważna ze względu na id wiersza będącej poza zasięgiem wzroku poprzez paginacji

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

    } 

} 

Odpowiedz

0

Cóż, ukryty tabela może nie mieć do wyboru węzłów ... ale na pewno ma swoje własne dane !

Najprostszym sposobem jest posiadać odniesienie do dwóch tabelach:

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

Teraz można zawsze dostać się do danych z każdej tabeli z myTimeline.fnGetData(). Może musisz dodać dodatkową niewidoczną kolumnę danych, aby łatwiej było się odwoływać do tych dwóch tabel. Funkcja fnUpdate() działa również z indeksami z fnGetData().

Nie jestem pewien, ale może trzeba wywołać myTimeline.fnDraw() tuż przed lub po tym, jak tabela stanie się znowu widoczna, aby wyświetlić nowe dane.

Powiązane problemy