#jsf-2 #primefaces
#jsf-2 #primefaces
Вопрос:
Здравствуйте, у меня возникли проблемы с панелью. Это отображается неправильно. Приведенный ниже код должен отображать два столбца:
<p:panelGrid id="pnl" columns="3" >
<p:row>
<p:column>
<h:outputText value="Types" />
<p:selectOneMenu id="tipifase" value="#{home.t}"
>
<f:selectItems value="#{home.types}" />
</p:selectOneMenu>
</p:column>
<p:column>
<h:outputText value="Step 1" /> <h:inputText value="#{faseAperta.step1}" />
<f:verbatim><br /></f:verbatim>
<h:commandLink action="#{home.search}" >
<h:graphicImage value="images/icosearch.gif" style="{border: 0}" />
<h:outputText value="ID field" />
</h:commandLink>
</p:column>
<p:column></p:column>
</p:row>
</p:panelGrid>
К сожалению
<h:commandLink action="#{home.search}" >
<h:graphicImage value="images/icosearch.gif" style="{border: 0}" />
<h:outputText value="ID field" />
</h:commandLink>
отображается на новой строке под первым столбцом.
Я бы ожидал, что вместо этого будет три столбца. Что-то не так с моим кодом?
Ответ №1:
<f:verbatim><br /></f:verbatim>
Тег занимает место в третьем столбце, и именно поэтому ссылка на команду размещена в первом.
Если вы удалите ее, она будет работать.
Ответ №2:
Как указано в другом ответе, <f:verbatim><br /></f:verbatim>
занимает место в третьем столбце. Если вы хотите, чтобы ваши компоненты были «уложены вертикально», вы всегда можете использовать h:panelGrid
.
<p:column>
<h:panelGrid columns="1">
<h:outputText value="Step 1" /> <h:inputText value="#{faseAperta.step1}" />
<h:commandLink action="#{home.search}" >
<h:graphicImage value="images/icosearch.gif" style="{border: 0}" />
<h:outputText value="ID field" />
</h:commandLink>
</h:panelGrid>
</p:column>