2014-07-03 197 views
0

你好我有一個Panelgrid的問題。 它呈現不正確。下面的代碼應該呈現兩列:Primefaces Panelgrid渲染不正確

<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> 

呈現在第一列下一個新行。 我預計會有三列。我的代碼有什麼問題嗎?

回答

0

<f:verbatim><br /></f:verbatim>標籤在第三列中佔據了一席之地,這就是爲什麼命令鏈接放在第一列的原因。

如果您刪除它,它將工作。

0

正如另一個答案所述,<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>