Как я могу исправить свой правый столбец в таблицах данных jquery?

#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 помощью nor scrollY . Возможно, есть какая-то проблема совместимости с fixedColumn и скроллерами.