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:
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
voici donc le modalPanel:
Puis le code du dropDown à rerendering:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Mon utilisateur est pourtant bien loggué (idutilisateur est différent de 0), mais la magie du rafraichissement ne s'opére pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <a4j:outputPanel id="dropDown" > <rich:panel> <rich:dropDownMenu binding="#{utilisateurBean.menuUtilisateur}"></rich:dropDownMenu></rich:panel> </a4j:outputPanel>
Je vous remercies d'avance pour vos lumiéres, tcharl
Partager