Горизонтальное размещение компонентов в JSF

jsf

9715 просмотра

1 ответ

5145 Репутация автора

Должно быть просто, но я не мог найти ответ, я хотел бы разместить компоненты горизонтально, а не вертикально.

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

<rich:toolbar...>
  <f:panelgrid columns="1"...>
    <f:panelgroup id="row1" .../>  <-- Should be horizontal placement
    <f:panelgroup id="row2" .../>  <-- Should be horizontal placement
  <f:panelgrid/>
<rich:toolbar/>

Итак, как мне сделать макет группы панелей горизонтальным (или я должен использовать что-то еще?)

Спасибо!

Автор: Ben Источник Размещён: 31.03.2010 01:21

Ответы (1)


4 плюса

897005 Репутация автора

Решение

Вы, наверное, уже знаете, что JSF в веб-сервере заканчивается как HTML в веб-браузере. В HTML есть несколько способов размещения элементов по горизонтали (в конечном итоге с помощью CSS):

  1. Сгруппируйте их во встроенные элементы (как <span>или любой элемент с display: inline;).
  2. Сгруппируйте их в блочные элементы (как <div>или любой элемент с display: block;) и дайте им всем a float: left;.

JSF <h:panelGrid>отображает HTML- <table>элемент, в котором каждый дочерний компонент воспринимается как <td>. columnsАтрибут представляет максимальное количество <td>элементов в одной <tr>(так что <h:panelGrid>знает , когда поставить </tr><tr>дюйм). JSF <h:panelGroup>отображает <span>элемент.

Чтобы достичь пути 1 с JSF, вам просто нужно сгруппировать их в отдельные <h:panelGroup>компоненты.

<rich:toolbar ...>
    <h:panelgroup id="row1" ... />
    <h:panelgroup id="row2" ... />
</rich:toolbar>

Способ 2 может быть выполнен таким же образом, но затем <h:panelGroup layout="block">вместо него и a float: left;в их CSS.

Автор: BalusC Размещён: 31.03.2010 01:46
Вопросы из категории :
32x32