我已经尝试为我的application.For提供web2.0支持,我想提供rich: dynamically.User面板,它可以包含许多选项卡,可以添加和删除我使用的tabs.For,我使用c:foreach表示rich:tab.The列表选项卡包含列表的rich:panel包含的details.The面板只包含简短的content.By点击阅读更多链接。用户可以读取完整的content.For,我需要重新呈现包含rich:panel.But列表的a4j:outputpanel我已经使用了c:freach来呈现this.Because列表我无法获得包含列表tabs.So的a4j:outputpanel的确切id a4j:outputpanel doesnot allowed the el expressions.My代码片段如下,
<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> 我怎样才能做到这一点?请帮帮我。
发布于 2011-01-25 16:27:41
由于无法确定在forEach循环中呈现的tabe面板的id,因此必须重新呈现panelGrid detailGrid。注意将选项卡上显示的所有值缓存到托管bean中。如果这样做,则不需要调用数据库,并且所有选项卡的重新呈现都很快。
https://stackoverflow.com/questions/4789442
复制相似问题