Datatable не может инициализироваться

0

Я попытался восстановить данные с помощью этого кода

$('#tableid').DataTable().columns.adjust().responsive.recalc();            

Это не сработает и выдает следующее сообщение об ошибке: Предупреждение DataTables: table id = tableidt - Невозможно повторно инициализировать DataTable.

Я прочитал здесь https://datatables.net/manual/tech-notes/3, но я не знаю, как мне это сделать с моим приведенным выше кодом.

Я думаю это может решить проблему

table = $('#example').DataTable( {
    retrieve: true,
} );

Я не знаю, как я могу это сделать с помощью моего кода

$('#tableid').DataTable().columns.adjust().responsive.recalc();    

Я пробовал с этим, но не получилось

 $('#tableid').DataTable({
                  destroy: true,
                  //retrieve: true, also tested but failed, too
                  }).columns.adjust().responsive.recalc();      

Как я могу исправить ошибку?

  • 0
    какая цель стоит за его повторной инициализацией? Возможно, есть другой способ достижения цели, поэтому, если вы можете объяснить, почему вы пытаетесь это сделать, это поможет лучше понять сценарий.
  • 0
    @ Пират, конечно. Мне нужно пересчитать таблицу после изменения ширины таблицы.
  • 0
    по моему опыту retrieve: true должно решить проблему. У меня это сработало. но если это не работает для вас, чем я боюсь, есть что-то еще. Может быть, попробуйте уничтожить datatable и снова инициализировать. Или, когда вы впервые инициализируете его, сохраните экземпляр с данными в локальной переменной, а затем используйте его для доступа к API.
  • 0
    @Pirate, я получил это с помощью Retrieve, правильно ли я это делаю?
  • 0
    Я не уверен, как вы его инициализируете. возможно, опубликуйте полный скрипт, где вы инициализируете таблицу и пересчитываете ширину. вы поместили retrieve: true в исходный код инициализации?
  • 0
    @Pirate при инициализации, я не получаю только часть восстановления, как в моем сообщении выше
  • 0
    Попробуйте добавить retrieve: true при исходной инициализации. Затем вы можете выполнить $('#tableid').DataTable().columns.adjust().responsive.recalc();
Теги:
datatables
CodeFix

1 ответ

0
Лучший ответ

После тестирования множества способов я, наконец, использую это, чтобы предотвратить сообщение об ошибке.

Я думаю, что это не лучший способ, и я думаю, что он не решит основную проблему, но у меня он работает.

if ( $.fn.dataTable.isDataTable(#tableid) ) {
                  alert("DT way1");
                  $(#tableid).DataTable().columns.adjust().responsive.recalc();  
            }
            else {
                  alert("DT way2");
//do nothing
            }  
Поделиться
Источник

Другие вопросы

CodeFix
Цитата дня

"Завидую тестировщикам: все хотят с ними дружить."

Эндрю Таненбаум