Ответ 1
Я всегда использую
<p:dataTable ........ tableStyle="width:auto">
И делает то, что я думаю, что вы ожидаете, что ваш datatable делать.
Я пытаюсь установить ширину столбцов таблицы данных. Я рассмотрел этот вопрос для ответа Как установить ширину столбца p: в p: dataTable в PrimeFaces 3.0?.
Я пытаюсь сделать что-то немного другое. Я хочу, чтобы столбец был таким же широким, как и самый широкий элемент, который он отображает. Большинство моих данных - это текст.
Так, например, это не должно выглядеть так:
----------------------------- | This is some text | -----------------------------
Это должно выглядеть так:
--------------------- | This is some text | ---------------------
Если существует несколько строк, coulmn должен быть таким же большим, как и самый широкий элемент.
Я всегда использую
<p:dataTable ........ tableStyle="width:auto">
И делает то, что я думаю, что вы ожидаете, что ваш datatable делать.
Если вы хотите, чтобы ширина таблицы оставалась на 100%, используйте
tableStyle="table-layout: auto;"
Maco отвечает как шарм. Тем не менее, для тех, чьи столбцы и заголовки данных становятся негласными, одним из решений является добавление стиля к каждому <p:column>
с желаемым атрибутом min-width
(обратите внимание, что он должен быть одинаковым для всех <p:column>
для <p:dataTable>
), Возможно, было бы более целесообразно определить класс стиля в вашем css и ссылаться на него с помощью атрибута styleClass в <p:column>
. Таким образом, если вы решите изменить минимальную ширину, вам нужно будет только изменить ее в одном месте.
<p:column style="min-width: 100px;">
...
</p:column>
Протестировано в PF 5.3