Richfaces tabPanel - à l'aide de la même page pour les différents onglets de la modification du contenu de manière dynamique
Je suis à l'aide de Couture 2.1.2 et RichFaces 3.3.2.SR1.
<a4j:form>
<rich:tabPanel switchType="ajax">
<rich:tab label="TAB 1" actionListener="#{outControl.tab1}" immediate="true">
<ui:include src="/pages/agenda/TabContain.xhtml" />
</rich:tab>
<rich:tab label="TAB 2" actionListener="#{outControl.tab2}">
<ui:include src="/pages/agenda/TabContain.xhtml" />
</rich:tab>
...
TabContain.xhtml:
<rich:extendedDataTable value="#{manBean.seDataModel}" var="out" id="bc_table"
sortMode="#{manBean.sortMode}" selectionMode="#{manBean.selectionMode}"
tableState="#{manBean.tableState}" selection="#{manBean.selection}"
rowKeyVar="rkvar">
<rich:column sortable="false" id="bc_col_0">
...
Le contenu de extendedDataTable
doit être déterminée en fonction de l'onglet sélectionné. Ma première approche a été de définir un actionListener
dans les onglets et modifier le manBean
à l'intérieur de cette action. Après que actionListener
même si je peux voir dans les journaux que le manBean
a changé, ce n'est pas reflétée dans la page dans le navigateur. C'est de ne pas rafraîchissant. J'ai essayé de fixer un rerender
dans le rich:tab
mais c'est aussi ne pas le faire.
Une idée? Aussi heureux sur les autres approches, ce qui peut ne pas être le meilleur.
OriginalL'auteur |
Vous devez vous connecter pour publier un commentaire.
Pas sûr que je peux mettre cela en mots facilement, mais ici, il va...
Si vous avez un nombre fixe d'onglets et vous savez les valeurs possibles de l'avance de temps, d'envisager le passage d'un paramètre du modèle réutilisable via l'interface utilisateur:param.
Exemple
Modèle avec le tabpanel
Puis dans le resusableDataTable modèle
La valeur de "modèle de données" seront ensuite passés dans TabContain.xhtml est un paramètre, et remplacé partout où il y a un #{dataModel}.
Espère que cette aide, je fais essentiellement présent dans notre projet.
OriginalL'auteur
ok, l'approche ci-dessus effectué après quelques essais à l'aide de actionListener (je n'ai pas de changer l'attribut correct).
1 - il se déclenche lorsque l'onglet est sélectionné
2 - il s'empare de la bean géré par:
3 - il modifie le managed bean qui est le
value
dans leextendedDataTable
4-
important!:
ajouter unf:subview
autour de chaque -ui:include
- pour éviter un "double composante ID" erreur!Voulez-vous dire qu'il n'y est une meilleure approche pour cela?
Grâce.
OriginalL'auteur