2017-02-21 7 views
0

Я застрял с чем-то [это должно быть] довольно просто: после изменения содержимого ячейки я не могу сделать изменение видимым с draw().DataTables draw() не меняет отображение

Вот базовый образец, показывающий DataTable().data() до и после изменения, в то время как отображаемая таблица остается неизменной.

$('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]); 
}); 

К сожалению, она не может быть выполнена с SO фрагмент кода, который запускает много ошибок безопасности, прежде чем тайм-аута.
Но вы можете видеть, как он работает в this fiddle.

ПРИМЕЧАНИЕ: Я также попытался вставить invalidate() до draw(), без успеха.

ответ

0

Обновление пользовательских ячейки (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

Большое спасибо за эту ссылку DOC! Как заметил OP, _DataTables сохраняет ссылки на объекты, но не массив_ является ключевой информацией, пропущенной в базовом документе. – cFreed

+0

благодаря вашему одобрению, я использовал эту библиотеку и очень хорошо реализовал –

Смежные вопросы