2015-10-02 39 views
-2

我使用的UI重複這個網格內數據網格和其他UI重複一個問題想與對UI重複:panelGrid的和其他UI重複內primefaces

這是我的代碼

<ui:repeat var="blockSpace" value="#{providersMB.fillBlockSpaceRsv}" > 
<p:panelGrid style="margin-top:20px" rendered="#{providersMB.blockSpace}"> 
    <f:facet name="header">      
     <p:row> 
      <p:column> 
       <h:outputLabel value="#{blockSpace.company}" />          
      </p:column> 
      <p:column>#{label['displayOrders.label.businessClass']}/p:column> 
      <p:column>#{label['displayOrders.label.yankeeClass']}</p:column>               
     </p:row>     
    </f:facet> 

    <p:row> 
     <p:column>#{label['displayOrders.label.reservation']}</p:column>       
     <p:column><p:spinner id="basic" value="#{spinnerView.number1}" /> 
     </p:column>      
     <p:column> 
     <p:spinner id="spinner" value="#{spinnerView.number1}" /> 
     </p:column> 

    </p:row> 

    <p:row> 
     <p:column>#{label['displayOrders.label.configuration']}</p:column> 
     <ui:repeat var="blockSpaceCabin" 
      value="#{blockSpace.blockSpaceCabin}" > 
      <p:column> <h:outputLabel value="#{blockSpaceCabin.quantity}"/>      
      </p:column> 
     </ui:repeat>            
    </p:row>      
</p:panelGrid> 

第二個uirepeat的值沒有顯示。

回答

0

ui:在視圖渲染時重複運行,p:panelGrid在視圖編譯時運行。 PanelGrid將在視圖構建期間期望它們的子元素,但由於它們在渲染時可用,所以它失敗。

在第二個UI上試試這個:重複。改變UI:重複與C:的forEach

<c:forEach items="#{blockSpace.blockSpaceCabin}" var="blockSpaceCabin"> 
    <p:column> 
     <h:outputLabel value="#{blockSpaceCabin.quantity}"/>      
    </p:column> 
</c:forEach> 

您可以使用BalusC的帖子在這裏也: c:forEach inside primefaces(e.g. p:panelgrid) inside ui:repeat

在另一方面,因爲你有一個3欄佈局,你不能有更多的則#{blockSpace.blockSpaceCabin}中的兩個元素,因此您可以在第一個forEach中定義的塊空間元素上將它們設置爲#{providersMB.fillBlockSpaceRsv}。最好不要將jstl標籤與jsf的標籤混合在一起以獲得安心。