Comment faire pour Afficher / Masquer les composants jsf
Dans un de mes JSF application, j'ai en-tête de la partie du haut contient selectOneMenu, et le contenu de la partie au bas de l'écran qui affiche le dire, les composants du Filtre. Par défaut, l'application s'affichent en premier selectOneMenu données en haut et correspondant à Filtrer l'information à la base. Si l'utilisateur sélectionne différents selectOneMenu données, correspondant à Filtrer l'information doit être chargé sur le fond de la partie contenu.
Composant de filtre a bouton de commande et l'utilisateur remplit le Filtre de l'information. Sur clic du bouton, et le Filtre est approuvée, la demande doit charger un autre composant.xhtml en place de composant de Filtre. Qui est le composant de Filtre doit être remplacé par le Rapport sur le fond de la partie contenu.
Cliquez sur selectOneMenu élément doit répéter le processus. C'est-Filtre d'affichage de l'écran et ainsi de suite.
Zone à problème
1. Pas capable d'afficher du formulaire de Filtre et de masquer le formulaire de Rapport sur le contenu de la partie
2. La sauvegarde de haricot de Filtre - bouton de commande OK devraient valeur de retour. Selon les résultats, le Rapport doit être affiché à la place du Filtre.
Je ne suis pas sûr que le dessin est précis, si ce n'est pas d'aller travailler comme prévu, s'il vous plaît suggérer et vos précieuses réponses seront appréciées. Je tiens à garder l'application basé sur ajax et je ne veux pas recharger toute la page sur le bouton de l'événement.
GDK
<h:form id="form1">
<h:selectOneMenu value="#{states.stateName}">
<f:selectItems value="#{states.stateChoices}"/>
<f:ajax render=":Filter"/>
</h:selectOneMenu>
</h:form>
<h:form id="Filter">
<div id="content">
<h:panelGroup id="one" rendered="Need a condition from form1 to display this">
#{states.stateName}
<br/>Report
<h:inputText id="report" value="#{Counties.report}" style="width:150px"/>
<h:commandButton id="OK" value="OK" actionListener="#{Counties.getReports}">
<f:param name="CatName" value="Dekalb" />
</h:commandButton>
</h:panelGroup>
</div>
</h:form>
<h:form id="Report">
<div id="content">
<h:panelGroup id="two" rendered="#{should be rendered on acceptance from OK command button}">
<ui:include src="Report.xhtml"/>
</h:panelGroup>
</div>
</h:form>
OriginalL'auteur GDK | 2011-01-20
Vous devez vous connecter pour publier un commentaire.
Voici un minimum exemple (j'ai aussi été assez aimable pour désinfecter le nommage à respecter les normes):
Où
Counties
managed bean a une nouvelleboolean
propriétéaccepted
:Bonjour BalusC, Ce code (vos) travaille pour la première itération. Cliquez sur Selectmenu élément permet d'afficher inputText et le bouton OK. Pour la deuxième fois, cliquez sur le bouton OK ne vais pas appeler #{comtés.viewReport} function. Cliquez de nouveau sur OK bouton d'appel #{comtés.viewReport} function. Cela signifie qu'il exige de double-cliquer sur le bouton OK pour activer. Pourriez-vous nous expliquer ce comportement ? GDK
Lorsque le bouton appuyez sur échoue, alors il peut dire que
stateName
est vide ouaccepted
estfalse
lors de la requête. L'action, à savoir de ne pas être invoquée lorsque lerendered
attribut du bouton ou de l'un de ses parents évaluefalse
cours d'appliquer les valeurs de demande de phase. Cela, cependant, fonctionnent très bien aussi longtemps que votre bean est vue étendue. N'êtes-vous pas par programmation la réinitialisation de l'un d'eux par la suite?Ré-arrangé le code peu. Puis il a travaillé. Changé en <form><panelGroup>..... </panelGroup></form>. Votre idée de base m'a beaucoup aidé!!! Merci.
OriginalL'auteur BalusC