【问题标题】:rerender rich:tab contnet重新渲染丰富:标签内容
【发布时间】: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>   

我怎样才能做到这一点?请帮助我。

【问题讨论】:

    标签: jsp jsf richfaces jsf-2


    【解决方案1】:

    由于您无法确定在 forEach 循环中呈现的 tabe 面板的 ID,因此您必须重新呈现 panelGrid detailGrid。注意缓存托管 bean 中选项卡上显示的所有值。如果您这样做,则无需调用数据库,并且所有选项卡的重新呈现速度都很快。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-11
      • 2012-02-24
      • 2012-11-17
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 2016-10-08
      • 2020-09-09
      相关资源
      最近更新 更多