【发布时间】:2013-08-12 16:21:05
【问题描述】:
我使用 primeface 3.5。我有一个 tabview,每个 tabview 都有一个带有表单的 inputMasks。我想在更改选项卡时重置 inputMask。我监听 ontabchange 事件并将值重置为 =“” 但 bean 重置值但 View 没有重置。
<p:tabView id="tabViewOS" binding="#{docData.tabView}" dynamic="true" cache="true" rendered="#{userData.opRendered}">
<p:ajax event="tabChange" listener="#{docData.onTabChange}" immediate="true"/>
<p:tab id="tab1" title="AB">
<h:form id="ABForm">
<h:panelGrid id="abgrid" columns="3" cellpadding="5">
<h:outputText value="AB NO: " />
<p:inputMask value="#{docData.abNo}" mask="999-99999999"
id="ABinput" required="true"
</p:inputMask>
<p:message id="msgAB" for="ABinput" showDetail="true" autoUpdate="true" />
<h:outputText value="" />
<p:commandButton value="GETİR" style="float:right;" ajax="false"
action="#{docData.getDoc}" />
</h:panelGrid>
</h:form>
</p:tab>
public void onTabChange(TabChangeEvent event) {
this.activeTabIndex = tabView.getChildren().indexOf(event.getTab());
FacesContext.getCurrentInstance().renderResponse();
System.out.println(this.activeTabIndex);
this.abNo="";
documents.clear();
}
【问题讨论】:
-
请发布您的代码
-
如果您想在 bean 中保存活动选项卡的索引,只需使用
p:tabView的属性activeIndex。你为什么要FacesContext.getCurrentInstance().renderResponse();?并实现标签的更新使用dynamic="true" cache="false"。cache默认为true。
标签: primefaces tabview