Есть таблица (DataTable) как обновить её данные (если они меняются сторонними функциями)
есть таблица и пару внешних факторов, которые фильтруют ВНИМАНИЕ (Не таблицу, а запрос) который потом загружает данные в таблицу методом ajax + json (result.html) Данные таблицы меняются и это хорошо...но если нажать на вторую страницу или кнопку распечатать, то данные вернуться в первоначальный вид...как перезаписать данные таблицы, как сделать переинициализацию
tableImport: function(selector) {
var table = $(selector);
table.dataTable({
order: [3, 'desc'],
sDom: '<"text-right mb-md"T><"row"<"col-lg-6"l><"col-lg-6"f>><"table-responsive"t>p',
buttons: ['print', 'excel', 'pdf']
});
$('<div />').addClass('dt-buttons mb-2 pb-1 text-right').prependTo(selector+'_wrapper');
table.DataTable().buttons().container().prependTo(selector+'_wrapper .dt-buttons' );
$(selector+'_wrapper').find('.btn-secondary').removeClass('btn-secondary').addClass('btn-default');
},
setData: function(first, regionid, filialid, access) {
if(access != 1) {
access = 0;
}
if ((typeof(regionid) != 'number' && typeof(regionid) != 'string') || !regionid) {
regionid = 0;
}
if ((typeof(filialid) != 'number' && typeof(filialid) != 'string') || !filialid) {
filialid = 0;
}
if ($('#servicegroup option:selected').attr('post') == '0') {
$('#post_err').show();
} else {
$('#post_err').hide();
}
$('#tbody').html($('#tbody').attr('loading'));
ajaxRequest(
'hide',
'/front_user/IndexForm/',
{
regionId: regionid,
filialId: filialid,
access: access
},
function(result) {
if (!result.err) {
$('tbody').html(result.html);
if(first == 1) {
// действие при первой формировки таблицы
base.tableImport('#datatable-tabletools');
} else {
// здень нужно заставить таблицу обновиться с данными result.html
}
$('#prgBar').modal('hide');
} else {
$('#tbody').html($('#tbody').attr('loading_error'));
}
}
);
},
Ответы (1 шт):
Автор решения: Олег Файн
→ Ссылка
Решил вопрос следующим образом Я передавал в result.html только строки (....</tr), а теперь через ajax передаю таблицу целиком, и после того как она загрузилась, инициализирую её как dataTable, тогда все работает отлично
