2013-05-27 4 views

ответ

6

Вы считали атрибут стиля? Пример:

<p:panelGrid columns="2" style="width: 50px"> 

В противном случае, для столбцов:

<p:column style="width:50px"> 

Обратитесь к этой теме: how can I adjust width of <p:column> in <p:panelGrid>?

+0

спасибо Gloserio, но он все еще не работает: ширина одного столбца относительно содержимого в этом столбце; также в первом столбце не выравнивается с во втором столбце – Andromida

+1

Возможно, вам стоит опубликовать свой код и что вы ожидаете от него для дальнейшей помощи. – Akheloes

+0

@Ahheloes '' не будет работать (будь то 'px' или'% 'btw) - отображаемая таблица по-прежнему остается такой же большой, как на экране – KiriSakow

8

у меня была аналогичная проблема, и вот мое решение:

<p:panelGrid style="width:100%"> # notice that I do not define columns attribute in p:panelGrid!! 
    <f:facet name="header"> # header 
     <p:row> # p:row and p:column are obligatory to use since we do not define columns attribute! 
      <p:column colspan="2"> # here I use colspan=2, coz I have 2 columns in the body 
       Title 
      </p:column> 
     </p:row> 
    </f:facet> 

    <p:row> 
     <p:column style="width:150px"> # define width of a column 
      Column 1 content 
     </p:column> 
     <p:column> # column 2 will fill the rest of the space 
      Column 2 content 
     </p:column> 
    </p:row> 

    <f:facet name="footer"> # similar as header 
     <p:row> 
      <p:column colspan="2"> 
       Footer content 
      </p:column> 
     </p:row> 
    </f:facet> 
</p:panelGrid> 

Итак, как вы можете видеть, основное отличие состоит в том, что вы делаете не определить столбцы атрибут в p: panelGrid. В верхнем и нижнем колонтитулах вы должны использовать p: row и p: column, и в моем случае мне также нужно использовать colspan = 2, так как в теле у нас есть 2 столбца.

Надеется, что это помогает;)

+0

Я ценю этот ответ! Я встретил эту проблему до –

21

Вы можете квалифицироваться столбцами внутри panelGrid с помощью columnClasses. Следующий код устанавливает разную ширину и привязывает содержимое ячеек, выровненное с верхней стороны.

<h:panelGrid columns="2" style="width: 100%" columnClasses="forty-percent top-alignment, sixty-percent top-alignment"> 
.forty-percent { 
    width: 40%; 
} 

.sixty-percent { 
    width: 60%; 
} 

.top-alignment { 
    vertical-align: top; 
} 
+3

Если у вас есть несколько столбцов, вы также можете указать отношение ширины столбца без пользовательского css, как этот ' ...' –

+0

Мне больше нравится ответ от @NwawelAIroume, поскольку он придерживается CSS и не добавляет лишний CSS (который, возможно, в один прекрасный день прерывает отзывчивость). – Roland

Смежные вопросы