IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

Comportement bizarre avec modalPanel


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 29
    Par défaut Comportement bizarre avec modalPanel
    Bonjour,

    Voilà mon soucis :

    J'affiche un tableau avec des lignes de données et lorsque l'utilisateur clique sur une icone appartenant à cette liste ("modifier" par exemple) j'affiche un modalPanel avec les champs à modifier.

    Pour l'instant j'arrive à afficher mon modal Panel et à récupérer les données de la ligne sélectionnée mais dans ma méthode seulement. Dans mon modalPanel, les données sont celles qui ont été instanciées à l'ouverture de la page et ces données ne se mettent pas à jour mais pour le modalPanel uniquement !!

    Voici le code de ma page JSF :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <h:form>
     <rich:scrollableDataTable id="tableGestionnaire"rowKeyVar="rkv"
                    width="800" columnClasses="col" rows="10"
                    value="#{administrationController.listeGestionnaires}" var="gestionnaire" sortMode="single">
         			<rich:column id="Uid" width="150">
                        <f:facet name="header"><h:outputText value="UID" /></f:facet>
                        <h:outputText value="#{gestionnaire.uId}" />
                    </rich:column>    
     
                    <rich:column id="Prenom" width="200">
                        <f:facet name="header"><h:outputText value="Prénom" /></f:facet>
                        <h:outputText value="#{gestionnaire.prenom}" />
                    </rich:column>
                    <rich:column id="Edit" width="50">
                        <f:facet name="header"><rich:toolTip value="Modifier" showDelay="1000" style="background-color: #FFF"/></f:facet>
                        <center><a4j:commandLink actionListener="#{administrationController.recupereLigneTable}" immediate="true" 
                        oncomplete="#{rich:component('panelEditionGestionnaire')}.show()"><img src="../IMG/edit.png" border="0"/></a4j:commandLink></center>
                    </rich:column>                         
        </rich:scrollableDataTable>
    </h:form>
    <h:form id="formEditionGestionnaire">
    	<rich:modalPanel id="panelEditionGestionnaire">
    		<f:facet name="header">
    			<h:outputText value="Modifier un gestionnaire" />
    		</f:facet>
    		<f:facet name="controls">
    			<h:graphicImage value="../IMG/close.png" style="cursor:pointer" onclick="#{rich:component('panelEditionGestionnaire')}.hide()" />
    		</f:facet>
    		<table>
    	<tr>
    	<td>
    		<h:outputText value='Login : '/><h:inputText value="#{administrationController.gestionnaire.uId}"></h:inputText>									
    	</td>
    	</tr>
    	<tr>
    		<td>
    			<h:outputText value='Prénom : '></h:outputText><h:inputText id='Prenom' value="#{administrationController.gestionnaire.prenom}"></h:inputText>
    		</td>
    	</tr>
    	<tr>
    	<td>
    	<h:commandButton id="validate" value="Valider"></h:commandButton>
    	</td>
    	</tr>
    	</table>
    		<h:messages/>
       	</rich:modalPanel>
    </h:form>
    Et le code de ma méthode recupereLigneTable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void recupereLigneTable(ActionEvent arg0) throws AbortProcessingException
    	{
    		UIComponent component = FacesContext.getCurrentInstance().getViewRoot().findComponent("administrationGestionnaire:tableGestionnaire");
    		UIData dataTable = (UIData)component;
     
            //Object correspondant à la ligne cliquée
            gestionnaire = (Gestionnaire)dataTable.getRowData();
     
            System.out.println("recupèreLigneTable : Gestionnaire UID : " + gestionnaire.getuId() + " " + gestionnaire.getPrenom());
    	}
    Chaque fois que le modalPanel s'affiche cette méthode est bien appelée et mon gestionnaire prend les bonnes valeurs. Par contre dans le modalPanel, le gestionnaire est null (valeur par défaut).

    Par contre si je sélectionne une ligne, que je quitte la page et que j'y reviens, le gestionnaire prend la valeur de la ligne sélectionnée quand je réouvre un modalPanel mais n'en change pas si je clique sur une autre ligne (alors que la méthode elle est bien appelée à chaque fois).

    Je ne comprends pas du tout ce comportement. Quelqu'un pour m'éclairer ?

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Il ne faut inclure la modalPanel dans un form,

    ajoute le form à l'intérieur de la modalPanel.

    et ajoute un reRender sur le contenu de la modalPanel en enlevant le immediate dans le commandButton :



    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <rich:modalPanel id="panelEditionGestionnaire">
    		<f:facet name="header">
    			<h:outputText value="Modifier un gestionnaire" />
    		</f:facet>
    		<f:facet name="controls">
    			<h:graphicImage value="../IMG/close.png" style="cursor:pointer" onclick="#{rich:component('panelEditionGestionnaire')}.hide()" />
    		</f:facet>
    <a4j:outputPanel id="popPanel">
    <h:form>
    		<table>
    	<tr>
    	<td>
    		<h:outputText value='Login : '/><h:inputText value="#{administrationController.gestionnaire.uId}"></h:inputText>									
    	</td>
    	</tr>
    	<tr>
    		<td>
    			<h:outputText value='Prénom : '></h:outputText><h:inputText id='Prenom' value="#{administrationController.gestionnaire.prenom}"></h:inputText>
    		</td>
    	</tr>
    	<tr>
    	<td>
    	<h:commandButton id="validate" value="Valider"></h:commandButton>
    	</td>
    	</tr>
    	</table>
    </h:form>
    <a4j:outputPanel>
    		<h:messages/>
    </rich:modalPanel>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <a4j:commandLink actionListener="#{administrationController.recupereLigneTable}" reRender="popPanel"
                        oncomplete="#{rich:component('panelEditionGestionnaire')}.show()">

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 29
    Par défaut
    Ça fonctionne ! Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comportement bizarre avec un pointeur
    Par esteban dans le forum Langage
    Réponses: 7
    Dernier message: 15/07/2010, 14h05
  2. [XSL-FO] comportement bizarre avec tableau
    Par titouille dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 25/11/2009, 12h47
  3. [A-07] Comportement bizarre avec Jointure
    Par mayekeul dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 06/02/2009, 12h48
  4. Comportement bizarre avec le SQL a la carte
    Par fatatov dans le forum Deski
    Réponses: 2
    Dernier message: 11/07/2008, 16h47
  5. [TRANSAQ SQL] INSERT comportement bizarre avec les REAL
    Par argyronet dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/12/2005, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo