0

我正在使用“panelTabbedPane”并创建了 3 个具有不同处理元素的选项卡。完成第一个选项卡上的详细信息,切换到第二个和第三个工作得很好。但是一旦我决定从第三个选项卡切换到第一个或第二个选项卡,整个页面刷新和所有数据的加载都会再次发生。它对性能的影响很大。谁能帮我?

 <t:panelTabbedPane enabledOnUserRole="true"
                binding="#{ABCController.tabSet}" serverSideTabSwitch="true"
                styleClass="tabbedPane" activeTabStyleClass="activeTab"
                inactiveTabStyleClass="inactiveTab"
                disabledTabStyleClass="disabledTab" activeSubStyleClass="activeSub"
                tabContentStyleClass="tabContent"
                immediateTabChange="false">

                <t:panelTab id="panelTab1" disabled="#{abc.disableTabOne}"
                    label="#{abc.tab1LabelTxt}">
                    <jsp:include page="./test1.jsp"></jsp:include>
                </t:panelTab>

                <t:panelTab id="panelTab2"  disabled="#{abc.disableTabTwo}"
                    label="#{abc.tab2LabelTxt}">
                    <jsp:include page="./test2.jsp"></jsp:include>
                </t:panelTab>

                <t:panelTab id="panelTab3" disabled="#{abc.disableTabThree}"
                    label="#{abc.tab3LabelTxt}" >
                    <h:outputText rendered="#{!abc.downloadView}">
                       <jsp:include page="./test3.jsp"></jsp:include>
                    </h:outputText>
                    <h:outputText rendered="#{abcn.downloadView}">
                        <jsp:include page="./test4.jsp" />
                    </h:outputText>
                </t:panelTab>

                <t:tabChangeListener
                    type="org.portlets.controller.ABCController" />
            </t:panelTabbedPane>
4

1 回答 1

0

文档中:

立即选项卡更改

定义是否应该在选项卡之间切换之前执行流程验证和更新模型阶段,当 serverSideTabSwitch = true 时(如果为 false,则通过其他方式进行切换,因此该属性没有任何影响)。请注意,如果此属性设置为 false,则如果表单内的所有输入字段都有效(包括此面板外的输入组件),则仅进行选项卡更改。默认情况下为 true,因此两个阶段都不会执行。

既然你有serverSideTabSwitch=true,标签更改是由你观察到的请求/响应周期完成的。然而,通过设置immediateTabChange=false,这仅在您访问所有可用选项卡后才会发生。尝试设置serverSideTabSwitch=false(但不知道最终会在什么情况下提交tab数据,我自己没试过)。

于 2013-03-08T11:30:44.737 回答