salut pour tous,
J'ai un problème que j'ai pas trouvé une solution adéquate.
Je veux ouvrier une modelPanel à partir d'un MenuItem.
pour bien présenter le sujet voila ce que je traite :
j'ai une liste, le dernier colonne pour les actions , edit, show ...
les actions se présente dans un menu.
le code :
puis dans le model panel j'utilise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <rich:dropDownMenu id="actionButton" direction="top-left" value="#{i18n.btn_actions}" styleClass="btnAction" jointPoint="tl"> <rich:menuItem value="Modifé valeaur" id="editMenuItem" icon="#{a4jSkin.nameSkin}/images/edit16.png" action="#{monBean.getSelectedObject}" > <f:setPropertyActionListener value="#{item}" target="#{monBean.currentObject}" /> <rich:componentControl for="editPanel" attachTo="editObjectMenuItem" operation="show" event="onclick" /> </rich:menuItem>
Avec ce code la solution qui marche jusqu'à maintenant c'est avec un action dans le bean je récupère l'id avec <f:param> du colonne sélectionnée puis je récupére l'objet dans l'action et pour afficher le model panel j'utilise l'attribut
Code : Sélectionner tout - Visualiser dans une fenêtre à part <h:inputText value="#{monBean.currentObject.id}" />
showWhenRendered="#{monBean.flag}"
du model panel, qui est égale à true à l'exécution de l'action.
mais cette solution n'est pas professionnel, car l'action su MenuItem doit etre exécuter pour afficher le Modelpanel donc il y a relaod (Actualisation ) de la page web.
c'est pas le cas, car le model panel doit etre affichier dés le clic sur le menuItem.
1) J'ai utilisé avec oncomplete="javascript:Richfaces.showModalPanel('editPanel');"
et <f:setpropertyaction > le probleme c'est que les valeurs à editer ne s'affiche pas dans le model panel, car il faut qu'une action qui va etre executer pour passer les valeur avec <f:setpropertyaction >
2) Avec componentControle ne marche pas aussi, le probleme d'affichage du modelpanel il faut mettre l'attribut submitMode="none" pour afficher le model panel, donc aucune balise de passage de parametre ne marche, aussi aucun action.
Comment j'utilise <a4j:keepAlive beanName="nom_de_ton_bean" />
Est ce que avec cette balise j'en sort du problème.
--------------------------------------------------------------------
Si je garde la première solution c'est à dire utilisation de :
showWhenRendered="#{monBean.flag}"
du model panel qui est met le falg = true dans l'action de récupération de l'objet courant du menuItem.
Bon, à travers cette méthode , comment je peut rendre ce falg à false après la fermeture de modelPanel, car il devient true après l'action de menuItem pour qui'il s'affiche.
Mais le model panel s'affiche apès chaque action.(flag = True)
Comment je le passe à false après la fermeture du model panel ?
Merci d'avance.
Partager