Равная ширина p:panel-s внутри p:dataGrid

У меня есть a p:dataGrid с 3 столбцами, содержащими панели:

<p:dataGrid columns="3" var="item" value="#{bean.data}">
    <p:panel>
        <p:panelGrid columns="1" style="width: 100%;" >
            <h:outputText value="some data..." />
        </p:panelGrid>
        <p:panelGrid columns="2" style="width: 100%;" >
            <h:outputText value="some more data ..." />
        </p:panelGrid>
    </p:panel>
</p:dataGrid>

Я хочу, чтобы панели имели одинаковую ширину и растягивались при изменении размера окна браузера. Пока панели имели одинаковое содержание, они работали отлично. Однако когда я предоставил некоторые реальные данные, панели начали растягиваться в соответствии с содержимым (один из столбцов занимал 70% ширины окна).

Когда я устанавливаю фиксированную ширину для панелей:

<p:dataGrid columns="3" var="item" value="#{bean.data}">
    <p:panel style="width: 300px; height: 150px;">

они имеют одинаковый размер, но я хочу, чтобы они растягивались и меняли размеры, чтобы заполнить весь экран. Я пытался использовать свойство columnClasses:

<p:dataGrid columns="3" columnClasses="column1,column1,column1">

с помощью css:

.column1{width: 33%;}

но это не помогло

Любая идея, как мне сохранить мои панели одинакового размера? Я в порядке с фиксированной высотой (высота: 150 пикселей;), но я хочу, чтобы ширина панели растягивалась с помощью dataGrid.

1 ответ

Решение

Решение:

XHTML:

<p:dataGrid styleClass="someCustomClass" ... />

CSS:

.someCustomClass .ui-datagrid-column {width: 33.33%;}

Свойство columnClasses не сработало, потому что такого свойства нет для p:dataGrid (но есть свойство p:panelGrid).

Другие вопросы по тегам