【发布时间】:2011-06-14 22:29:22
【问题描述】:
我尝试为我的应用程序提供 web2.0 支持。为此,我想提供丰富的:tabpanel,它可以动态包含多个选项卡。用户可以添加和删除选项卡。为此,我使用 c:foreach代表丰富列表:选项卡。选项卡包含丰富列表:面板包含详细信息。面板仅包含简要内容。通过单击阅读更多链接,用户可以阅读全部内容。为此我需要重新渲染a4j :outputpanel 包含丰富的列表:面板。但我不能这样做。因为我已经使用 c:freach 来呈现选项卡列表。所以我无法获得包含列表的 a4j:outputpanel 的确切 ID rich:panels.a4j:outputpanel 不允许使用 el 表达式。下面是我的代码 sn-p,
<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>
我怎样才能做到这一点?请帮助我。
【问题讨论】: