Primefaces Tabview重置输入

时间:2013-08-12 16:21:05

标签: primefaces tabview

我使用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();


}

3 个答案:

答案 0 :(得分:0)

尝试更改事件的调用方式。而不是 immediate=true 使用 process="@this"

改变这个:

<p:ajax event="tabChange" listener="#{docData.onTabChange}"  immediate="true"/>

对此:

<p:ajax event="tabChange" listener="#{docData.onTabChange}"  process="@this" update="ABinput"/>

答案 1 :(得分:0)

我想如你所说--dynamic =“true”cache =“false”&gt; - 解决了我的问题。其实我测试的程序有问题,我的问题已经解决了。据我所知,在我的情况下,这种情况导致cache = false。谢谢。

答案 2 :(得分:0)

查看p:tabView上的primefaces文档。一方面,您拥有属性dynamic,它指定在选择某个标记时是否使用AJAX加载选项卡的内容。另一方面,属性cache指定选项卡的内容是否仅在第一次选择选项卡时动态加载。

因此,关于dynamic="true" cache="false"p:tabView设置activeIndex的信息应该可以帮到你。

另一个有趣的属性是activeIndex="#{docData.activeTabIndex}"。正如我所看到的那样,您在选项卡更改时手动设置活动选项卡的索引。如果您可以在tabchange上提交tabview并且已设置{{1}},则会自动跟踪活动的tabindex。如果符合您的要求,请查看文档。