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

Struts 1 Java Discussion :

checkbox par défaut à true


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 61
    Points
    61
    Par défaut checkbox par défaut à true
    Bonjour tout le monde,
    Je suis entrain de faire une appli struts où j'utilise la balise checkbox.
    J'ai un formulaire avec des utilisateur.Sur la premiere colonne j'ai des checkbox.
    J'ai la possibilité d'ajouter de nouvelle ligne.Et je veux que quand j'ajoute une nouvelle ligne la case à cocher de celle soit par défaut cocher.

    voici le code

    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
     
    <logic:iterate id="MultiUser" name="InviteReadersForm" property="arrReadersInvitationBean"  indexId="cntMulti" type="com.ewf.bean.ReadersInvitation">
    		   				<tr class="<%=styleRow[cntMulti.intValue()%2]%>">
    			   				<td>
    			   				<bean:define id="valeur" name="MultiUser" property ="ipn"/>
    			   				<html:checkbox  name="InviteReadersForm" property="idUtilisateursASupprimer"  value="<%=String.valueOf(valeur)%>" />
     
     
     
                                 </td>
    							<td><bean:write name="MultiUser" property="name"/></td>							
    							<td><bean:write name="MultiUser" property="firstName"/></td>							
    							<td><bean:write name="MultiUser" property="title"/></td>
    							<td><bean:write name="MultiUser" property="email"/></td>							
    							<td><a href="javascript:deleteReader(<%=cntMulti%>)"> <img src="<%=request.getContextPath()%>/images/pictos/delete.gif"></a></td>
    						</tr>
    					</logic:iterate>

    J'avais réussi à le faire avec juste ce bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <!-- <html:checkbox  name="MultiUser" property="checkboxselect" /> -->
    où checkboxselect est un boulean.Mais l'incovénient c'est que si je coche d'autres lignes et que j'envoie mon form je ne recupere que la nouvelle ligne c'est à dire la nouvelle ligne ajouter au form.

    Merçi pour vos suggestion

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Utilise plutôt le tag html:multibox comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <logic:iterate id="MultiUser" name="InviteReadersForm" property="arrReadersInvitationBean"  indexId="cntMulti" type="com.ewf.bean.ReadersInvitation">
    <tr class="<%=styleRow[cntMulti.intValue()%2]%>">
    	<td>
    	<html:multibox name="InviteReadersForm" property="idUtilisateursASupprimer">
    	   <bean:write name="MultiUser" property="ipn"/>
    	</html:multibox>
    	</td>
    	<td><bean:write name="MultiUser" property="name"/></td>
    	<td><bean:write name="MultiUser" property="firstName"/></td>
    	<td><bean:write name="MultiUser" property="title"/></td>
    	<td><bean:write name="MultiUser" property="email"/></td>
            <td><a href="javascript:deleteReader(<%=cntMulti%>)"> <img src="<%=request.getContextPath()%>/images/pictos/delete.gif"></a></td>
    </tr>
    </logic:iterate>
    Pour que cela fonctionne, il faut que la propriété idUtilisateursASupprimer soit un tableau de String ou d'Integer et il faut l'initialiser dans la méthode reset de l'ActionForm.

    Si par exemple, tu la définis de type String[], il faut mettre ceci dans la méthode reset :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void reset(ActionMapping mapping, HttpServletRequest request)
    {
       this.idUtilisateursASupprimer=new String[0] ;
    }
    Ainsi, au submit du formulaire, idUtilisateursASupprimer contiendra les id des Utilisateurs qui ont été cochés.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 61
    Points
    61
    Par défaut
    Merçi pour votre réponse,

    Avec ce que je fait je parvient à obtenir les éléments à supprimer.Ce que je ne peux pas c'est de mettre mes boutons à l'etat cocher par défaut quand j'ajoute une nouvelle ligne.

    J'ai deux boutons un bouton ajouter qui ajoute dans le tableau où ya mes lignes avec la cage à cocher une nouvelle ligne et un autre bouton supprimer qui supprime les lignes qui sont cochées.Le deuxième marche bien car je parvient avec idUtilisateurasupprimer d'avoir les lignes à supprimer.Mais pour l'autre c'est à dire ajouter,la ligne s'ajoute bien mais le cage à cocher n'est pas par défaut cochée.Ce que je veux c'est qu'elle soit cocher.
    Merçi

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Ok mais comment gères-tu cet ajout de ligne ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 61
    Points
    61
    Par défaut
    Je l'ajoute dans mon tableau qui se trouve dans mon form.
    Avant c'est à dire quand dans mon property de mon checkbox je mettais un boolean au moment d'ajouter une ligne je fait un setChecklistBox(true) et pour cette nouvelle ligne la cage était cocher et quand je sauve mon form je rechange à nouveau l'etat de l'attribut.Mais la je ne recupérais pas tous les éléments cochés.

    voici le code de mon actionForm
    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
     
     
    case ACTION_ADD_READER :
    					ARCABean arcaBean1 = new ARCABean();					
    					int lengthOld = 0;
     
    					ReadersInvitation[] oldArrReaderBean = formBean.getArrReadersInvitationBean();	
     
    					if (oldArrReaderBean != null){						
    						// size of the table before the operation of adding reader
    						lengthOld = oldArrReaderBean.length;							
    						/*for (int i=0;i<oldArrReaderBean.length;i++){			
    							System.out.println("°°ACTION_ADD_READER : oldArrReaderBean["+i+"]="+oldArrReaderBean[i].getFirstName());
    						}*/
    					}
     
     
    					// place in the le bean all of the readers datas in terms of its IPN											
    					arcaBean1 = ARCATechnical.getPersonDetail(formBean.getSc_selected_ipn_to_multi(), ctx.session.getArcaBeanSession());
     
    					// create the line from the data provided in the forms in the form of hidden fields
    					ReadersInvitation readerBean = new ReadersInvitation(processName,arcaBean1.getIpn(),arcaBean1.getNom(),arcaBean1.getPrenom(),arcaBean1.getTitle(),arcaBean1.getEmail(),instanceNum);
    					//cocher le nouveau readerajouter
     
    					// create a new array readers bean of size (former table size + 1)
    					ReadersInvitation[] newArrReaderBean = new ReadersInvitation[lengthOld + 1];
     
    					// add the line recovered earlier in array bean
    					newArrReaderBean = addReadersInvitationBean(oldArrReaderBean, readerBean);
     
    					// Set form with new array bean
    					formBean.setArrReadersInvitationBean(newArrReaderBean);
     
    					// Set session readers invitation bean
    					ctx.session.setSessionReadersInvitationBean(newArrReaderBean);
     
     
    					ctx.forwardMapping = Constant.MAPPING_SUCCESS;
    					break;
    c'est dans un switch

  6. #6
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    En espérant avoir bien compris ton code, pour que la nouvelle ligne soit cochée par défaut, essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    formBean.setIdUtilisateursASupprimer(arcaBean1.getIpn()) ;

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 61
    Points
    61
    Par défaut
    Merçi pour ton aide.Je peux dire que t'as compris mon code avec juste un changement que j'ai effectué sur l'argument du setIdUtilisateursASupprimer qui attend un tableau de string.
    Autres choses que j'ai fait comme tas solution me paraissais bonne mais que ça marchait pas j'ai remplacé ma checkbox par multibox et ça à marcher.
    Je ne sais pas pourquoi ça ne marchait pas pour le checkbox mais c'est cool pour moi

  8. #8
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par dolfendo Voir le message
    Merçi pour ton aide.Je peux dire que t'as compris mon code avec juste un changement que j'ai effectué sur l'argument du setIdUtilisateursASupprimer qui attend un tableau de string.
    Oui, effectivement.

    Citation Envoyé par dolfendo Voir le message
    Autres choses que j'ai fait comme tas solution me paraissais bonne mais que ça marchait pas j'ai remplacé ma checkbox par multibox et ça à marcher.
    Je ne sais pas pourquoi ça ne marchait pas pour le checkbox mais c'est cool pour moi
    Il faut effectivement utiliser le tag multibox pour pouvoir récupérer un tableau de String.
    Si tu utilises le tag checkbox, la propriété ne sera pas indexée.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 61
    Points
    61
    Par défaut
    ok je vois mieux.
    Encore merçi

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/03/2010, 17h16
  2. Réponses: 8
    Dernier message: 13/08/2008, 10h07
  3. Désélectionner ma checkbox par défaut
    Par Raiden1234 dans le forum Struts 2
    Réponses: 2
    Dernier message: 23/05/2008, 11h12
  4. Valeur par défaut d'une checkbox
    Par griese dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 08/12/2006, 15h59
  5. Réponses: 9
    Dernier message: 12/01/2005, 17h00

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