2011-01-25 78 views
0

我試着爲我application.For,我想提供豐富的web2.0的支持:一個tabpanel可以包含標籤dynamically.User的數量可以添加和刪除tabs.For那我使用c:爲代表的豐富列表的foreach:tab.The選項卡包含的富豪榜:面板包含details.The面板只包含簡單content.By點擊閱讀更多的鏈接,用戶可以閱讀完整content.For我需要重新描繪的A4J:outputpanel其中包含的豐富的名單:panel.But我不能這樣做this.Because我已經使用C:freach用於渲染tabs.So列表我不能得到A4J的確切ID :outputpanel其中含有豐富的名單:panels.The A4J:outputpanel不列入允許的EL expressions.My代碼段下面,重新呈現豐富:標籤contnet

<c:forEach items="#{Home.tabList}" var="homeBean" varStatus="status"> 
<el:define value="${status.count}" var="rowIndex"/> 
<rich:tab id="homeTab" label="#{homeBean.header}" 
         name="#{homeBean.header}" switchType="client" 
         onlabelclick="coinSliderFunction('coin-slider#{rowIndex}')"> 
<a4j:outputPanel id="subHeaderPanel"> 
<h:panelGrid columns="3" cellpadding="3" cellspacing="3" 
id="detailGrid"                 rendered="#{!Home.subHeaderDetailedContentPanelRendered}" 
                    columnClasses="layoutContentColumnClass, 
                    layoutContentColumnClass,layoutContentColumnClass"> 

<%--SubHeader List--%> 
<c:forEach items="#{homeBean.subHeaderBeanList}" var="subHeaderBean" varStatus="subHeaderStatus"> 
    <rich:panel header="#{subHeaderBean.header}" id="subHeaderPanels"> 
<h:outputText id="outputText" value="#{subHeaderBean.briefContent}" escape="false"/> 
    <a4j:commandLink value="Read More" id="readMoreLink" 
action="#{Home.navigationHandler}" reRender="subHeaderPanel">  
<a4j:actionparam name="headerActionParam" value="#{homeBean.header}" assignTo="#{Home.headerName}"/> 
<a4j:actionparam name="subHeaderActionParam" value="#{subHeaderBean.header}" assignTo="#{Home.subHeaderName}"/> 

</a4j:commandLink> 
</rich:panel> 
</c:forEach> 
</h:panelGrid> 
    <%--SubHeader Detail Panel--%> 
    <h:panelGrid rendered="#{Home.subHeaderDetailedContentPanelRendered}" id="subHeaderGrid"> 
    <h:outputText id="detailedContent" value="#{Home.subHeaderDetailedContent}" escape="false"/> 
<f:verbatim><center></f:verbatim>      
<a4j:commandLink id="backLinks" value="#{platform.backButtonLabel}" 
    action="#{Home.backButtonAction}" 
                       reRender="leftOutputPanel"/> 
<f:verbatim></center></f:verbatim> 
               </h:panelGrid>                
                 </a4j:outputPanel>              
</rich:tab> 
</c:forEach> 

我怎樣才能做到這一點?請幫我。

回答

1

由於您無法確定forEach循環中呈現的tabe面板的ID,因此必須重新渲染panelGrid detailGrid。小心緩存在託管bean的選項卡中顯示的所有值。如果這樣做不需要調用數據庫和所有選項卡的重新渲染速度快。