Ouvrir un modelPanel à partir de MenuItem + passage de paramètre
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 :
Code:
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> |
puis dans le model panel j'utilise
Code:
<h:inputText value="#{monBean.currentObject.id}" />
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
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.