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 :

Masquer / Afficher panelGrid dans 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
    Juin 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 22
    Par défaut Masquer / Afficher panelGrid dans ModalPanel
    Bonjour à tous,

    Je suis actuellement chargé de travailler sur un projet J2EE utilisant JSF et notamment les composants RichFaces.

    En outre, je rencontre un problème que je ne parviens pas à résoudre.

    Ce que j'aimerai faire :
    Je dispose d'un tableau présentant des informations.
    Sur chaque ligne se trouve une "selectBooleanCheckbox".
    Un lien de validation permet de demander la suppression de chaque élément dont la ligne est cochée par l'intermédiaire d'un pop-up de confirmation (ModalPanel).

    Le problème :
    Lors de l'affichage de ce pop-up, j'aimerai mettre en place deux cases à cocher permettant :
    -> La suppression des fichiers liés au utilisateurs sélectionnés
    --> Si on demande la suppression des fichiers des utilisateurs sélectionnées, alors on affiche une seconde checkbox demander si l'on souhaite forcer la suppression des dossier des utilisateurs à supprimer même s'ils contiennent des fichiers/dossiers d'autres utilisateurs.

    J'espère avoir été clair.


    Pour faire cela, j'ai le code suivant pour mon ModalPanel :
    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
    <rich:modalPanel id="deleteUsersPanel" minWidth="300"
    	minHeight="100" autosized="true">
    	<f:facet name="header">
    		<h:panelGroup>
    			<h:outputText value="#{msg['listusers.deletebuton']}" />
    		</h:panelGroup>
    	</f:facet>
    	<f:facet name="controls">
    		<h:panelGroup>
    			<h:graphicImage value="../images/close.png" style="image"
    				styleClass="hidelink" id="hidelink6" />
    			<rich:componentControl for="deleteUsersPanel"
    				attachTo="hidelink6" operation="hide" event="onclick" />
    		</h:panelGroup>
    	</f:facet>
    	<h:outputFormat value="#{msg['listusers.messagedelete']}">
    	</h:outputFormat>
    	<br />
    	<br />
    	<h:form>							
    		<h:panelGrid border="0" columns="2">
    			<h:selectBooleanCheckbox id="supprFiles" value="#{manageUserBean.deleteFiles}">
    				 <a4j:support event="onclick" actionListener="#{manageUserBean.toDelete}" onclick="ChangeSupprFolder()"/>					
    			</h:selectBooleanCheckbox>
    			<h:outputFormat value="#{msg['listusers.messagedeletefiles']}"
    				style="font-size:0.8em; font-family:'Verdana';" />
     
    		</h:panelGrid>
     
    		<h:panelGrid id="secondCheckBox" border="0" columns="2" style="display:none;">
    			<h:selectBooleanCheckbox id="forceSupprFolders" value="#{manageUserBean.forceDeleteFolders}" />
    			<h:outputFormat value="#{msg['listusers.messagedeletefolders']}"
    				style="font-size:0.8em; font-family:'Verdana';" />
    		</h:panelGrid>
     
    		<h:commandButton value="#{msg['listusers.yesOption']}"
    			action="#{manageUserBean.deleteUsers}"
    			style="float:right; margin-top:10px;" />
     
    		<h:commandButton id="cancelDeleteUsers" type="button"
    			value="#{msg['listusers.noOption']}"
    			style="float:left; margin-top:10px;"
    			action="#{manageUserBean.unCheckUsersChecked}" />
    		<rich:componentControl for="deleteUsersPanel"
    			attachTo="cancelDeleteUsers" operation="hide" event="onclick" />
    	</h:form>
    </rich:modalPanel>
    En fait, j'aimerai appeler la fonction JS suivante sur l'action de changement de valeur de ma première check box :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script type="text/javascript">
    	function ChangeSupprFolder()
    	{
        	if (document.getElementById("supprFiles").value == "true") {
        	document.getElementById("secondCheckBox").style.display = "block";
        	}
        	else{
        		document.getElementById("secondCheckBox").style.display = "none";
        		document.getElementById("forceSupprFolders").value = "false";
        	}
     }
    </script>
    Après avoir fait moult tentatives, je me rend compte qu'il n'appel pas ma fonction JS se trouvant dans le <head< de ma page jsp.


    Auriez vous une solution à ce problème ?

    En vous remerciant par avance,

    Burin Khazad

  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
    pourquoi ne pas le faire en ajax..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <h:selectBooleanCheckbox id="supprFiles" value="#{manageUserBean.deleteFiles}">
    <a4j:support event="onclick" actionListener="#{manageUserBean.toDelete}"  reRender="panel" />					
    </h:selectBooleanCheckbox>
     
    <a4j:outputPanel id="panel">
    <h:panelGrid  rendered="#{manageUserBean.deleteFiles}">
     
    </h:panelGrid>
     
    </a4j:outputPanel>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 22
    Par défaut
    Merci pour cette intervention.

    Après avoir testé cette idée en l'adaptant comme suit :
    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
     
    <h:panelGrid border="0" columns="2">
    	<h:selectBooleanCheckbox id="supprFiles" value="#{manageUserBean.deleteFiles}">
    		<a4j:support event="onclick" actionListener="#{manageUserBean.toDelete}"  reRender="secondCheckBoxPanel" />					
    	</h:selectBooleanCheckbox>
    	<h:outputFormat value="#{msg['listusers.messagedeletefiles']}"
    	style="font-size:0.8em; font-family:'Verdana';" />									
    </h:panelGrid>
     
    <a4j:outputPanel id="secondCheckBoxPanel">
    	<h:panelGrid  id="secondCheckBox" border="0" columns="2" rendered="#{manageUserBean.deleteFiles}">
    		<h:selectBooleanCheckbox id="forceSupprFolders" value="#{manageUserBean.forceDeleteFolders}" />
    		<h:outputFormat value="#{msg['listusers.messagedeletefolders']}"
    		style="font-size:0.8em; font-family:'Verdana';" />
    	</h:panelGrid>									 
    </a4j:outputPanel>
    Je me retrouve avec une erreur de type "java.lang.NullPointerException" après avoir sélectionné la première checkBox.

    A mon avis, le problème vient du fait que l'on souhaite rafraichir une partie d'un ModalPanel seulement ...


    Merci de l'aide en tout cas.

  4. #4
    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
    ça n'a rien à voir avec ce que tu as ajouté, vérifie ce qui se passe dans ton actionListener, tu dois avoir un objet utilisé et non initialisé.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 22
    Par défaut
    J'ai lancé mon programme en mode Debug avec un point d'arret sur la méthode appelée (que j'ai changé, car ce n'était pas la bonne d'ailleurs).
    Cependant, je n'atteint pas le point d'arrêt que l'erreur s'affiche déjà ... Bizarre.

  6. #6
    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
    donne nous la trace complète de l'exception

Discussions similaires

  1. Réponses: 9
    Dernier message: 12/03/2014, 21h28
  2. Réponses: 2
    Dernier message: 21/01/2011, 14h45
  3. Réponses: 2
    Dernier message: 22/06/2007, 09h24
  4. Afficher/masquer un controle dans formulaire
    Par Flo4594 dans le forum Access
    Réponses: 5
    Dernier message: 13/12/2006, 09h01
  5. Afficher / Masquer un bouton dans un formulaire
    Par Alpha31 dans le forum IHM
    Réponses: 10
    Dernier message: 30/05/2006, 12h08

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