#jquery #datatables #fixed
#jquery #таблицы данных #исправлено
Вопрос:
В моей таблице данных я исправил правый столбец
var table = $('.table').DataTable({
"data":{{ data }},
"scrollX": true,
"fixedColumns": {
rightColumns: 1
},
Но когда я меняю количество отображаемых записей или разбивку на страницы, я получаю странную ошибку отображения.
Я попытался устранить ошибку следующим образом:
"initComplete": function(settings, json) {
table.fixedColumns().relayout();
а также вот так:
$('.table').on( 'draw.dt', function() {
table.clear().draw();
});
Ответ №1:
Попробуйте relayout
с интервалом, используя API fixedColumns().relayout()
setTimeout(
function()
{
$.fn.dataTable.tables( { visible: false, api: true } ).columns.adjust().fixedColumns().relayout();
}, 1000);
Комментарии:
1. Куда именно вы помещаете эту функцию? в InitComplete или drawCallback?
2. Я попробовал функцию тайм-аута
$('.table').on( 'draw.dt', function() {
и вижу, что с фиксированной таблицей что-то происходит после тайм-аута, но проблема с отображением по-прежнему остается3. Если вы удалите прокрутку, она правильно выровняется?
4. Каждый раз, когда я меняю разбивку на страницы, я снова получаю наложение таблицы. Я думаю, что каким-то образом таблица дублируется снова и снова. Возможно, его нужно как-то удалить перед повторной инициализацией
5.
FixedHeader
официально не поддерживается ни сscrollX
помощью norscrollY
. Возможно, есть какая-то проблема совместимости сfixedColumn
и скроллерами.