2017-09-04 6 views
1

2つのテーブル間でいくつかの行を移動しています。私はいくつかの他のフィールドの値(選択)に基づいて異なる値を前提とする動的な列を持っています。これは私のコードの例である:DataTables:行を追加した後のキャッシュされた値

var clickedRow = queueTable.row($(elm)) 
var extraCols = [ 
    12 
]; 
$.merge(clickedRow.data(), extraCols); 
$(secondTable.row.add(clickedRow.data()).draw().node()) 
clickedRow.remove().draw(); 

問題行が最初に移動された後、私は再び(13例)、動的な列値を変更して移動した場合、古い値がキャッシュのままであることであり、たとえ私がconsole.log(clickedRow.data())から見えるものであっても、そのオブジェクトは新しいリフレッシュされた値を含んでいます。キャッシュをリフレッシュするにはどうしたらいいですか?私は両方のテーブルを* .draw()で再描画しようとしましたが、解決しません。

+0

少し不明です。 queueTableから行を削除したい場合は、再度挿入することができますか? – davidkonrad

+0

@davidkonrad実際に私は** 2テーブル間のいくつかの行を移動しています**。私はqueueTableから削除するだけではなく、** secondTable **に作成してからqueueTableから削除します – Mark

+0

おそらくhttps://datatables.net/reference/api/row().invalidate()を見てください – sur

答えて

1

あなたにはいくつかの特質がありますが、完全なコードなしで行うのはなぜか分かりません。私は単純に "移動" または内容をコピーします:

$('#queueTable').on('click', 'tbody tr', function() { 
    var clickedRowData = queueTable.row(this).data(); 
    queueTable.row(this).remove().draw(); 
    clickedRowData.push('42'); 
    secondTable.row.add(clickedRowData).draw(); 
}) 

http://jsfiddle.net/uh3t80oL/

NBpush()は単純な配列で使用する必要があります。 push('42', 'qwerty', new Date())などを使用して複数の値を追加できます。

+0

あなたの 'push()'提案のおかげで、私はそれを修正しました。質問の問題については、それは私のばかげた誤りでした。行を最初のテーブルに戻しながら、私はすでに追加された列をpingしていませんでした。 – Mark

関連する問題