J'ai une vue de tabulation contenant deux onglets.
Lorsque je passe à partir de l'onglet 1 à l'onglet 2, j'appelle un code qui exécute une validation et met à jour certaines valeurs. Selon le résultat de cette validation, j'aimerais rester sur l'onglet 1 ou passer à l'onglet 2 et rafraîchissez le contenu des onglets. P>
My Tabview: P>
public void doStuff() { // ... idx = 0; }
3 Réponses :
Essayez de conserver votre Tabview dans Panelgrid comme vitrage et mettez à jour ce H: PanelGrid CODE>
h:panelGrid id="mainPanel">
<p:tabView id="tabview" activeIndex="#{ctrl.idx}" dynamic="true" cache="false">
<p:ajax event="tabChange" listener="#{ctrl.doStuff}" update=":form:mainPanel"/>
<p:tab title="Tab 1" id="t1">
<h:panelGrid columns="1" cellpadding="10">
<h:outputText value="#{ctrl.s1}"/>
</h:panelGrid>
</p:tab>
<p:tab title="Tab 2" id="t2">
<h:panelGrid columns="1" cellpadding="10">
<h:outputText value="#{ctrl.s2}"/>
</h:panelGrid>
</p:tab>
</p:tabView>
</h:panelGrid>
J'ai déjà essayé cela mais ça ne change rien. Seul le contenu des onglets est dans la réponse, le conteneur Tabview "disparaît".
Essayez de lier votre comprimé Tabview à l'instance de composant latéral du serveur dans votre haricot de support.
1.Ajouter l'instance de composant Tabview à votre haricot de support P>
public void doStuff() { // ... //idx = 0; tabview.setActiveIndex(0); }
De nombreux upvotes, mais cela ne fonctionne que si vous mettez à jour complètement l'onglet. Et puis il vaut mieux utiliser la liaison d'une liaison d'utilisation de l'utilisation tabindex = # {yourbean.idx} code> '
Note pour toute personne lisant le commentaire ci-dessus, il devrait être: actifindex = "# {mybean.tabindex}" code>, pas
tabindex code>
Je fixe facile ceci avec: dans courantData J'ai la propriété sp_index avec un numéro d'onglet (premier, seconde ....) p> <script>
$("#tabView li:nth-child(#{currentData.SP_Index})").click();
</script>
L'avantage de cette solution sur l'utilisation de l'attribut ActiveIndex est que le Tabview n'a pas besoin d'être mis à jour complètement