ModalPanel et rafraîchissement page principale
Bonjour à tous,
Des problèmes, encore des problèmes...
Cette fois-ci c'est au sujet du rafraichissement d'un dropDownMenu, je vous explique le topo:
j'ai un index , avec ce fameux dropDownMenu, il est crée dynamiquement, et propose le login si un utilisateur ne l'est pas:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
public HtmlDropDownMenu getMenuUtilisateur() {
menuUtilisateur = new HtmlDropDownMenu();
try
{
menuUtilisateur.setId("menuUtilisateur");
menuUtilisateur.setValue("Compte");
UtilisateurBean ub=(UtilisateurBean) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("utilisateurBean");
if(ub.getUtilisateur().getIdUtilisateur()==0)
{
HtmlComponentControl hcc=new HtmlComponentControl();
hcc.setFor("panelLogin");
hcc.setOperation("show");
hcc.setAttachTo("seConnecter");
hcc.setEvent("onclick");
HtmlMenuItem seConnecter= new HtmlMenuItem();
seConnecter.setId("seConnecter");
seConnecter.setValue("Se connecter");
seConnecter.setSubmitMode("none");
seConnecter.getChildren().add(hcc); |
Ce form de login est un modalpanel (sympathique composant), et je voudrais qu'une fois qu'il s'est loggué, il y ait un rerender sur le dropdownmenu pour afficher d'autres informations.
voici donc le modalPanel:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <rich:modalPanel id="panelLogin" width="350" height="150">
<f:facet name="header">
<h:panelGroup>
<h:outputText value="Login"></h:outputText>
</h:panelGroup>
</f:facet>
<f:facet name="controls">
<span style="cursor: pointer" onclick="javascript:Richfaces.hideModalPanel('panelLogin') ">X</span>
</f:facet>
<h:form>
<h:panelGrid border="1" columns="2">
<h:outputText value="Login"></h:outputText>
<h:inputText value="#{utilisateurBean.utilisateur.pseudoUtilisateur}" id="login"></h:inputText>
<h:outputText value="Mot de Passe"></h:outputText>
<h:inputSecret value="#{utilisateurBean.utilisateur.mdpUtilisateur}"></h:inputSecret>
<a4j:commandLink action="#{utilisateurBean.log}" reRender="indexForm:dropDown" oncomplete="if(#{utilisateurBean.utilisateur.idUtilisateur}!=0){Richfaces.hideModalPanel('panelLogin');return false;}else{alert('Ce pseudo n existe pas ou le mot de passe est incorrect');}" >
<h:outputText value="Se logguer"></h:outputText>
</a4j:commandLink>
</h:panelGrid>
</h:form>
</rich:modalPanel> |
Puis le code du dropDown à rerendering:
Code:
1 2 3 4
| <a4j:outputPanel id="dropDown" >
<rich:panel>
<rich:dropDownMenu binding="#{utilisateurBean.menuUtilisateur}"></rich:dropDownMenu></rich:panel>
</a4j:outputPanel> |
Mon utilisateur est pourtant bien loggué (idutilisateur est différent de 0), mais la magie du rafraichissement ne s'opére pas...
Je vous remercies d'avance pour vos lumiéres, tcharl