2017-02-21 3 views
0

Ich bin mit etwas fest [das sollte] ziemlich einfach: nach dem Ändern des Inhalts einer Zelle, kann ich die Änderung nicht sichtbar mit draw().DataTables Draw() ändert nicht Anzeige

Hier ist eine grundlegende Probe, die die DataTable().data() vor und nach der Änderung zeigt, während die angezeigte Tabelle unverändert bleibt.

$('table').DataTable({ 
    data: [ 
    {a: 'A1', b: 'B1'}, 
    {a: 'A2', b: 'B2'} 
    ], 
    columns: [ 
    {data: 'a', title: 'A'}, 
    {data: 'b', title: 'B'} 
    ] 
}); 
var dt = $('table').DataTable(); 
    console.log('before:', dt.data()[0]); 
$('button').click(function() { 
    dt.row(0).data().a = 'XXX'; 
    dt.draw(); 
    console.log('after:', dt.data()[0]); 
}); 

Sorry, es kann nicht mit dem SO-Snippet ausgeführt werden, was eine Menge Sicherheitsfehler ausgelöst wird, bevor eine Zeitüberschreitung.
Aber Sie können es in this fiddle arbeiten sehen.

HINWEIS: Ich habe auch versucht, invalidate() vor draw(), ohne Erfolg.

Antwort

0

Benutzerdefinierten Zelle (DOC): https://jsfiddle.net/hdadLhmo/2/

$('table').DataTable({ 
    data: [ 
    {a: 'A1', b: 'B1'}, 
    {a: 'A2', b: 'B2'} 
    ], 
    columns: [ 
    {data: 'a', title: 'A'}, 
    {data: 'b', title: 'B'} 
    ] 
}); 
var dt = $('table').DataTable(); 
    console.log('before:', dt.data()[0]); 
$('button').click(function() { 
    dt.row(0).data().a = 'XXX'; 
    dt.draw(); 
    console.log('after:', dt.data()[0], dt.cell(0, 0).data('XXX')); 
}); 
+0

Vielen Dank für diesen DOC-Link! Wie das OP festgestellt hat, behält _DataTables die Objektreferenzen bei, aber nicht das Array_ ist die Schlüsselinformation, die im Basisdokument fehlt. – cFreed

+0

dank ihrer genehmigung, ich habe diese lib und wirklich nett zu implementieren –