У меня проблема с контролем ширины таблицы с помощью плагина jQuery DataTables. Таблица должна составлять 100% от ширины контейнера, но в итоге получается произвольная ширина, а не ширина контейнера.
Предложения приветствуются
Объявление таблицы выглядит так
<table id="querytableDatasets" class="display" cellspacing="0"
cellpadding="3" width="100%">
И javascript
jQuery('#tab-datasets').load('/cgi-bin/qryDatasets', '', function (){
jQuery('#querytableDatasets').dataTable({
"bPaginate": false,
"bInfo": false,
"bFilter": false
});
}); `
Просматривая HTML-код в Firebug, вы видите это (обратите внимание на добавленный style = "width: 0px;")
<table id="querytableDatasets" class="display" cellspacing="0"
cellpadding="3" width="100%" style="width: 0px;">
Если посмотреть в Firebug на стили, стиль table.display был переопределен. Не вижу, откуда это
element.style {
width:0;}
-- dataTables.css (line 84
table.display {
margin:0 auto;
width:100%;
}
jquery
datatables
jquery-datatables
Джон Мак
источник
источник
max-width
задано свойство. Очевидно, IE8 не слишком любит это свойство и игнорирует его по отношению к таблицам данных, хотя размер изображения на экране был соответствующим. Измените его, чтобыwidth
устранить проблему.Ответы:
Проблема вызвана тем, что dataTable должен вычислять свою ширину, но при использовании внутри вкладки он не отображается, поэтому не может вычислить ширину. Решение состоит в том, чтобы вызвать "fnAdjustColumnSizing", когда отображается вкладка.
Преамбула
Код инициализации
См. Это для получения дополнительной информации.
источник
window.resize
, посмотрите пример legacy.datatables.net/ref#fnAdjustColumnSizingПри инициализации таблиц данных вы захотите настроить две переменные:
bAutoWidth
иaoColumns.sWidth
Предполагая, что у вас есть 4 столбца шириной 50 пикселей, 100, 120 пикселей и 30 пикселей, вы бы сделали:
Более подробную информацию об инициализации таблиц данных можно найти на http://datatables.net/usage
Следите за взаимодействием между этим параметром widhts и применяемым CSS. Вы можете прокомментировать существующий CSS, прежде чем пытаться это сделать, чтобы увидеть, насколько близко вы приблизитесь.
источник
источник
Я не знаком с этим плагином, но не могли бы вы сбросить стиль после добавления datatable? Что-то вроде
после вызова .dataTable?
источник
У меня было множество проблем с шириной столбцов в таблицах данных. Волшебным решением для меня было включение строки
этот CSS соответствует общему CSS таблицы. Например, если вы объявили таблицы данных следующим образом:
тогда волшебная строка css войдет в класс Loadtable
}
источник
Решение TokenMacGuys работает лучше всего, потому что это результат ошибки в jQdataTable. Что произойдет, если вы используете $ ('# sometabe'). DataTable (). FnDestroy (), ширина таблицы будет установлена на 100 пикселей вместо 100%. Вот быстрое исправление:
источник
Добавьте этот класс css на свою страницу, это решит проблему:
источник
Установка ширины, явно используемой
sWidth
для каждого столбца ИbAutoWidth: false
приdataTable
инициализации, решила мою (аналогичную) проблему. Люблю переполненный стек.источник
Вы должны оставить хотя бы одно поле без фиксированного поля, например:
Вы можете изменить все, но оставьте только одно значение null, чтобы оно могло растягиваться. Если вы установите ширину на ВСЕ, это не сработает. Надеюсь, я помог кому-то сегодня!
источник
Это отлично работало, чтобы отрегулировать всю ширину стола. Спасибо, @Peter Drinnan!
источник
Как и в Datatable 10.1, это просто. Просто поместите атрибут ширины в свою таблицу в HTML. т.е. width = "100%", это переопределит все стили CSS, установленные DT.
См. Это http://www.datatables.net/examples/basic_init/f flexible_width.html
источник
Ни одно из решений здесь не помогло мне. Даже пример на домашней странице таблиц данных не работал, следовательно, для инициализации таблицы данных в опции show.
Нашел решение проблемы. Уловка состоит в том, чтобы использовать опцию активации для вкладок и вызвать fnAdjustColumnSizing () в видимой таблице :
источник
Просто хочу сказать, что у меня была точно такая же проблема, как и у вас, хотя я просто применил JQuery к обычной таблице без Ajax. По какой-то причине Firefox не раскрывает таблицу после ее раскрытия. Я исправил проблему, поместив таблицу внутрь DIV и применив эффекты к DIV.
источник
Вы делаете это в готовом мероприятии?
Размер, скорее всего, будет зависеть от полной загрузки документа.
источник
Для тех, у кого есть проблемы с настройкой ширины таблицы / ячейки с помощью плагина фиксированного заголовка:
Datatables использует теги thead для параметров ширины столбца. Это потому, что это действительно единственный собственный HTML-код, поскольку большая часть внутреннего HTML-кода таблицы создается автоматически.
Однако случается, что некоторые из ваших ячеек могут быть больше, чем ширина, хранящаяся внутри ячеек thead.
Т.е. если в вашей таблице много столбцов (широкая таблица), а в ваших строках много данных, то вызов "sWidth": для изменения размера ячейки td не будет работать должным образом, потому что дочерние строки автоматически изменяют размер td в зависимости от переполнения контент, и это происходит после как таблица была инициализирована и переданы ее параметры инициализации.
Исходная thead "sWidth": параметры переопределяются (сокращаются), потому что datatables считает, что ваша таблица все еще имеет ширину по умолчанию% 100 - она не распознает, что некоторые ячейки переполнены.
Чтобы исправить это, я вычислил ширину переполнения и учел ее, изменив размер таблицы соответствующим образом после того, как таблица была инициализирована - пока мы находимся на этом, мы можем одновременно запустить наш фиксированный заголовок:
источник
создайте свой фиксированный заголовок внутри «успеха» вашего вызова ajax, у вас не будет проблем с выравниванием в заголовке и строках.
источник
Надеюсь, это поможет тому, кто все еще борется.
Не храните стол в контейнерах. После рендеринга таблицы сделайте обертку таблицы своим контейнером. Я знаю, что это может быть недопустимым в тех местах, где у вас есть что-то еще вместе с таблицей, но тогда вы всегда можете добавить это содержимое обратно.
Для меня эта проблема возникает, если у вас есть боковая панель и контейнер, который фактически является смещением к этой боковой панели.
(Я добавил панель по умолчанию)
И ваш класс:
источник
найдите еще одну полезную ссылку об этой проблеме, и она решила мою проблему.
Таблица ширины силы Datatables
источник
Я столкнулся с аналогичной проблемой, когда вокруг стола был обернут div.
Добавление позиции: относительное исправило это для меня.
источник
У меня была аналогичная проблема, когда содержимое таблицы было больше, чем заголовок и нижний колонтитул таблицы. Добавление div вокруг таблицы и установка x-overflow, похоже, решила эту проблему:
источник
Убедитесь, что все остальные параметры перед bAutoWidth и aoColumns введены правильно. Любой неверный параметр перед этим нарушит эту функцию.
источник
У меня была аналогичная проблема, и я обнаружил, что текст в столбцах не ломается, и использование этого кода css решило проблему
источник
Это мой способ сделать это ..
источник
Встречаюсь сегодня с той же проблемой.
Я решил ее хитрым способом.
Мой код, как показано ниже.
источник
Проверьте и это решение. это легко решило мою проблему ширины столбца DataTable
JQuery DataTables 1.10.20 представляет
columns.adjust()
метод, который устраняет проблему с переключением вкладки BootstrapСм. Документацию: вкладки "Прокрутка" и "Загрузка".
источник
Это прекрасно работает.
источник