【发布时间】:2015-04-01 16:21:50
【问题描述】:
我们有一个tabPanel,它有多个标签。当在任何选项卡中执行任何事件时(例如,单击选项卡 1 中的“ajaxSubmit”按钮),所有选项卡都会刷新,这会导致性能问题(例如,总是从选项卡 3 调用“表”值的 getter)。
我们尝试将每个tab的内容包装在<a4j:region>中,但是tab3中组件的getter仍然被调用。
请在下面找到示例代码sn-p:
<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>
【问题讨论】:
-
看来你误解了
h:commandButton的工作原理。h:commandButton默认情况下不执行 ajax,我什至不完全相信它与 Richfaces 组件配合得很好(richfaces 有一些奇怪的地方)。将该命令按钮替换为a4j:commandButton,设置execute="@this"和render="tab1"