2013-01-09 9 views
6

Potrzebuję odświeżyć p: tabView po wykonaniu akcji (wyświetlanie komunikatów o błędach itp.).Jak zaktualizować tylko aktywną zakładkę p: tabView?

Pola do sprawdzenia poprawności znajdują się w różnych zakładkach. Kiedy aktualizuję cały tabView, jest to oczywiście błędne zachowanie, ponieważ w PrimeFaces niewidoczne zakładki nie powinny być aktualizowane (ponieważ pola edycji są niewidoczne, a po odświeżeniu tracą swoje wartości, na przykład p: ​​autoComplete jest nulled).

Tak, należy zaktualizować kartę aktywny tylko, ale jak kierować z atrybutem update CommandButton tylko aktywny uchwyt, a nie cała p: TabView?

Odpowiedz

4

Zrobiłem krótki przykład:

<h:form id="form"> 
    <p:tabView id="tabview"> 
     <p:tab title="tab 1"> 
      <p:commandButton value="update" update="@parent" /> 
     </p:tab> 
     <p:tab title="tab 2"> 
      <p:outputPanel id="tab2"> 
       <p:commandButton value="update" update=":form:tabview:tab2" /> 
      </p:outputPanel> 
     </p:tab> 
    </p:tabView> 
</h:form> 

Jednak, kiedy aktualizować p:tab przez ID lub za pomocą @parent (tak jak ja w karcie 1) zakładka (div) zostanie usunięty, dziwne. .. Obejście problemu polega na zawijaniu zawartości karty w kontenerze takim jak w zakładce 2.


HA! Okazało się, że powód, dlaczego nie można zaktualizować kartę bezpośrednio: https://code.google.com/p/primefaces/issues/detail?id=3518

przykład za pomocą przycisku poza TabView:

<h:form id="form"> 
    <p:tabView id="tabview" binding="#{tabView}"> 
     <p:ajax event="tabChange" update=":form:button" /> 
     <p:tab title="tab 1"> 
      <p:outputPanel id="tab0"> 
       <p:panel>text</p:panel> 
      </p:outputPanel> 
     </p:tab> 
     <p:tab title="tab 2"> 
      <p:outputPanel id="tab1"> 
       <p:panel>text</p:panel> 
      </p:outputPanel> 
     </p:tab> 
    </p:tabView> 
    <p:commandButton id="button" value="update" 
     update=":form:tabview:tab#{tabView.activeIndex}" /> 
</h:form> 
+0

Ale nie pisałem przyciski są zakładki do środka, a oni są nie w moim przypadku. –

+0

Aktualizowanie całego tabView powoduje zresetowanie wartości w niewidocznych zakładkach do wartości null –

+0

@lechlukasz zobacz aktualizację przyciskiem poza zakładką ;-) – siebz0r

Powiązane problemy