Потеря элемента при перезагрузке DataTable
Всем привет, моя задача состоит в том, что по нажатию кнопки найти дубликаты строк и по второму клику вернутся к общему списку.
Кнопка:
<div id="buttonContainer" style="display: inline-block;">
<button id="filterButton" class="toggle-button btn btn-info" type="button">Пошук дублів</button>
</div>
При первом запуске страницы, выгружаю все элементы такой функцией:
В ней же я вставляю свою кнопку после кнопок самого DataTable (["copy", "excel", "pdf", "print", "colvis"]). Чтобы все кнопки были в одной строке.
function loadSideEffectPartial() {
$('body').find('#SideEffectContainer').load('@Url.Action("SideEffectPartial", "SideEffect")', {
buttonText: button_Text
}, function () {
$("#SideEffectTable").DataTable({
"responsive": false,
"lengthChange": false,
"pageLength": 20,
"autoWidth": false,
"paginate": false,
"fixedHeader": true,
"scrollY": "600px",
"scrollCollapse": true,
"scrollX": "100%",
"scrollXInner": "100%",
"buttons": ["copy", "excel", "pdf", "print", "colvis"],
"fixedColumns": {
left: 1
}
}).buttons().container().appendTo('#SideEffectTable_wrapper .col-md-6:eq(0)');
$('#buttonContainer').insertAfter('#SideEffectTable_wrapper .dt-buttons');
var buttons = $('#SideEffectTable_wrapper .dt-buttons');
buttons.addClass('mr-1');
});
}
В обработчике для кнопки я меняю ее текст, а так же вызываю loadSideEffectPartial(), которая была прописана выше. В loadSideEffectPartial я передаю текущий текст кнопки с помощью переменной button_Text, которая после идет в метод контроллера. В контроллере у меня один метод для выгрузки элементов в котором стоит проверка на текст кнопки.
var button_Text = $('#filterButton').text();
$(document).ready(function () {
$("#filterButton").click(function () {
button_Text = $(this).text();
$(this).text(button_Text=== "Пошук дублів" ? "Скасувати" : "Пошук дублів");
loadSideEffectPartial();
});
});
И вот все элементы выгрузились в таблицу, кнопка для поиска дубликатов на своем месте и при первом клике на нее у меня в таблице уже только дубликаты.
Но после этого кнопка пропадает, ее вообще нет. Я понимаю, что скорее всего это из-за того, что я перезагружаю DataTable. Перепробовал такие варианты как:
- Удаление таблицы и заново ее отрендерить;
- Сделать блок кнопки через detach и заново засунуть в таблицу.