У меня есть html-таблица с id:#mytable
на моей веб-странице asp.net-4.5, которая создается на сайте c # и отправляется в aspx. В этой HTML-таблице в конце каждой строки есть кнопка DELETE
, как показано ниже:
...
html.Append("<td><input type=\"button\" runat=\"server\" value=\"Delete\" onclick=\"deleteRow(this)\" /></td>");
Когда эта кнопка нажата, функция deleteRow (this) запускается с кодом ниже:
btn.parentNode.parentNode.parentNode.removeChild(row);
Когда эта строка запускается, соответствующая строка немедленно удаляется, и я больше не вижу строку на экране.
Эта HTML-таблица представлена в виде таблицы данных (javascript), как показано ниже:
$('#myTable').on('error.dt', function (e, settings, techNote, message) {
console.log('An error has been reported by DataTables: ', message);
}).DataTable({ fixedColumns: true,
"columnDefs": [{
"width": '60%',
"defaultContent": "-",
"targets": "_all"
}]
});;
Это тоже хорошо работает, моя HTML-таблица превращается в таблицу данных. Моя проблема - , после того как я удаляю строку из таблицы, если я изменяю сортировку или ограничение на количество записей на странице (по умолчанию 10) и т. Д., Я начинаю видеть только что удаленную строку на страница, внутри таблицы. Кажется, моя функция deleteRow удаляет строку не навсегда. Как я могу исправить эту проблему? Будем очень благодарны за любую помощь.
РЕДАКТИРОВАТЬ: мне нужно было обновить страницу после нажатия кнопки удаления с помощью JS: document.location.reload(true)
и page_load перечитывает данные, чтобы исправить проблему. Спасибо @NTR и @J E Картер II
EDIT2: Использование $('#myTable').DataTable().rows(row).remove().draw(false);
при удалении строки исправило проблему без необходимости повторного чтения данных из БД. Проверь мой ответ.