5

fnUpdateページネーションのために現在表示されていない行に対して操作を実行するにはどうすればよいですか?

異なる div コンテナーで 2 つの DataTable インスタンスを使用する Web アプリを開発しています。一方のコンテナが表示されると、もう一方はjQuery.fadeOut()/によって非表示になりますfadeIn()

1 つの div には、別の非表示のコンテナーで使用できるデータ フィールドの選択を示す要約テーブルがあります。これらのテーブル間の行は、_id#サフィックスを介して行 ID にマップされます。たとえば4_performance_3、サマリー テーブルの行 IDtimeline_task_3は、詳細テーブルの行 ID にマップされます。

timeline_task_3ページネーションや並べ替えのために行 ID が表示されない場合、変更を適用した場合に行を更新するにはどうすればよい4_performance_3ですか?

コード スニペットでelementは、ページネーションによって行 ID が表示されないため、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");

    }

} 
4

1 に答える 1

0

隠しテーブルには選択可能なノードがない可能性がありますが、独自のデータがあることは確かです!

最も簡単な方法は、2 つのテーブルへの参照を保持することです。

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

myTimeline.fnGetData() を使用して、いつでも各テーブルのデータにアクセスできるようになりました。2 つのテーブル間をより簡単に参照できるように、非表示のデータ列を追加する必要があるかもしれません。fnUpdate() 関数は、fnGetData() からのインデックスでも機能します。

よくわかりませんが、テーブルが再び表示される直前または直後に myTimeline.fnDraw() を呼び出して、新しいデータを表示するようにトリガーする必要があるかもしれません。

于 2014-03-01T01:07:56.130 に答える