当事件发生在任何一个选项卡中时,tabpanel的所有选项卡都会刷新(Richface 3.3.4)

时间:2015-04-01 16:21:50

标签: jsf richfaces tabpanel

我们有一个tabPanel,它有多个标签。当在任何选项卡中执行任何事件时(例如,单击tab1中的'ajaxSubmit'按钮),所有选项卡都会刷新,这会导致性能问题(例如,总是从tab3调用'table'值的getter)。

我们尝试将每个标签的内容包装在<a4j:region>中,但仍会调用tab3中组件的getter。

请在下面找到示例代码段:

<r:tabPanel id="tabWorkingPanel" styleClass="otTMcontainer" selectedTab="#{tabHandlerBean.activeTab}">
    <rich:tab id="tab1">
        <h:commandButton value="ajaxSubmit"/>
    </rich:tab>
    <rich:tab id="tab2" />
    <rich:tab id="tab3">
        <rich:dataTable id="table" value="#{bean.someValue}">...</rich:dataTable>
    </rich:tab>
</r:tabPanel>

1 个答案:

答案 0 :(得分:1)

我认为您应该使用reRender,以便只刷新相关标签。我认为你还应该在表单中包含每个选项卡的内容,这样就不会在每次提交时提交所有内容,尽管这可能是你试图用region做的事情。我会仔细阅读文档,以确保您正确使用这些文档。

我没有使用RichFaces,所以我不肯定这会起作用,但类似的方法适用于PrimeFaces。

BalusC's description of process and update可能有用。他正在讨论PrimeFaces,但我认为同样的概念适用。