Изменение размеров данных на лету - PullRequest
53 голосов
/ 26 ноября 2011

Я использую чудесный плагин DataTables jQuery;http://datatables.net/ Добавлены дополнения FixedColumns и KeyTable.

Теперь размер таблицы корректно изменяется при изменении размера окна.Тем не менее, содержащий div таблицы также может быть изменен по ширине с помощью анимации jQuery, и я не нашел способа изменить размер таблицы с ним - он просто остается неизменным в своей первоначальной ширине.Только если я изменю ширину div в коде перед загрузкой страницы, размер таблицы будет корректно изменен.

Как я могу изменить размер DataTable на лету в соответствии с шириной окна и шириной содержащего div?Заранее спасибо!: -)

Ответы [ 12 ]

1 голос
/ 13 февраля 2013

Я получил это для работы следующим образом:

Сначала убедитесь, что в вашем dataTable определении ваш массив aoColumns включает sWidth данные, выраженные в% нефиксированных пикселей или ems.Затем убедитесь, что вы установили для свойства bAutoWidth значение false. Затем добавьте это небольшое, но JS:

update_table_size = function(a_datatable) {
  if (a_datatable == null) return;
  var dtb;
  if (typeof a_datatable === 'string') dtb = $(a_datatable)
  else dtb = a_datatable;
  if (dtb == null) return;

  dtb.css('width', dtb.parent().width());
  dtb.fnAdjustColumSizing();
}

$(window).resize(function() {
  setTimeout(function(){update_table_size(some_table_selector_or_table_ref)}, 250);
});

.без установки sWidth, и это привело меня к этому вопросу.)

1 голос
/ 26 ноября 2011

Вы пытались захватить событие div resize и сделать .fnDraw() для таблицы данных?fnDraw должен изменить размер таблицы для вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...