Я пытаюсь перезагрузить datatable. Я нажимаю на ячейку, и тогда работает запрос ajax. Если он возвращает успех, мне нужно перезагрузить datatable новыми данными. Я вижу действие перезагрузки «Обработка», но новые данные не отображаются в таблице.
Я использую ту же функцию в процессе удаления, и она работает.
Вот мой пример кода;
var dataTableId = "#dataTable";
function deleteFunction(){
// works correctly
}
$(dataTableId).dataTable({
"sAjaxSource": "url",
"aoColumns": [
...
],
"aoColumnDefs": [
...
]
});
var table = $(dataTableId).DataTable();
$('#dataTableFiles tbody').on('click', 'td', function () {
$.ajax({
url: "url",
type: 'post',
dataType: 'json',
data: postArray,
success: function (response) {
if (response.result) {
table.ajax.reload();
}
else {
table.ajax.reload();
}
},
error: function () {
console.log("err")
}
});
});
Спасибо..
2 ответа
Попробуйте table.api().ajax.reload();
У меня такая же проблема.
Убедитесь, что ваша функция в классе контроллера также возвращает атрибут sEcho. sEcho отправляется от клиента в запросе ajax, затем вы должны захватить это sEcho в своем классе контроллера и отправить его обратно без изменений. Таким образом, json из класса контроллера может выглядеть так (где sEcho=10 — это значение, отправленное клиентом).
{
"iTotalRecords": 10,
"iTotalDisplayRecords": 10,
"sEcho":10,
"aaData": [
]
}
Похожие вопросы
Новые вопросы
jquery
jQuery — это библиотека JavaScript. Также рассмотрите возможность добавления тега JavaScript. jQuery — это популярная кросс-браузерная библиотека JavaScript, которая упрощает обход объектной модели документа (DOM), обработку событий, анимацию и взаимодействие AJAX, сводя к минимуму расхождения между браузерами. Вопрос с тегом jQuery должен быть связан с jQuery, поэтому jQuery должен использоваться рассматриваемым кодом, и в вопросе должны быть как минимум элементы, связанные с использованием jQuery.
"url"
. это правильно?