2013-07-28 3 views
5

페이지 매김으로 인해 현재 볼 수없는 행에 fnUpdate 작업을 어떻게 수행 할 수 있습니까?페이지 매김/정렬로 인해 숨겨진 행 업데이트

다른 div 컨테이너에서 두 개의 DataTable 인스턴스를 사용하는 웹 앱을 개발하고 있습니다. 하나의 컨테이너가 표시되면 다른 컨테이너는 숨겨져 jQuery.fadeOut()/fadeIn()

div에 숨겨진 컨테이너에서 사용할 수있는 데이터 필드를 보여주는 요약 테이블이 있습니다. 이 테이블 간의 행은 접미사 _id#을 통해 행 ID에 매핑됩니다. 예를 들어 요약 테이블의 행 ID 4_performance_3은 전체 세부 테이블의 행 ID timeline_task_3에 매핑됩니다.

페이지 번호 매기기 및/또는 정렬로 인해 행 ID timeline_task_3이 표시되지 않는 경우 4_performance_3에 변경 사항을 적용한 경우 어떻게 행을 업데이트 할 수 있습니까? 코드 조각에서

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

글쎄, 숨겨진 테이블을 선택 노드가되지 않을 수도 있습니다 페이지 매김을 통해보기에서되는 행 ID에 널 (null)입니다 ...하지만 그것은 확실히 그것은 자신의 데이터입니다했다 !

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

지금 당신은 항상 (myTimeline.fnGetData 각 테이블의 데이터를 얻을 수 있습니다) :

가장 쉬운 방법은 두 테이블에 대한 참조를 유지하는 것입니다. 두 테이블 사이를 더 쉽게 참조 할 수 있도록 추가 보이지 않는 데이터 열을 추가해야 할 수도 있습니다. fnUpdate() 함수는 fnGetData()의 인덱스와도 작동합니다.

잘 모르겠지만 테이블이 다시 표시되어 새 데이터를 표시하기 전이나 후에 myTimeline.fnDraw()를 호출해야 할 수도 있습니다.