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 :

problème checkbox et display:table


Sujet :

Struts 1 Java

  1. #1
    Membre éclairé Avatar de Bubu017
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Avril 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 300
    Par défaut problème checkbox et display:table
    Bonjour tout le monde,

    Voilà j'ai un "petit" problème avec les display:table de des checkbox (ou plutot multibox)

    J'ai un display:table qui se remplit grâce à une liste elle-même remplie de FichierBDT. Ces fichierBDT sont une classe java contenant des informations sur des fichiers.
    Dans la jsp on peut ajouter ou supprimerles fichiers de la liste. Pour ajouter il n'y a pas trop de problèmes. Mais pour supprimer je voudrais mettre une checkbox pour chaque fichier. Comme ça si l'utilisateur veut supprimer les fichiers il coche les cases correspondantes aux fichiers et clic sur le bouton supprimer.

    Vu que je ne sais pas trop comment fonctionne les display :table alors je fais quelques tests. Mon problème est que je voudrais quechaque checkbox ait comme valeur le nom du fichier correspondant. Je vous met les codes, n'hésitez pas à me poser des questions car je ne sais pas si j'ai été très clair.

    Ma jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <display:table style = "width: 80%;" sort="list" name="requestScope.DemandeFormBean.listPj" id="requestScope.DemandeFormBean.listPj" requestURI="/insertDemande.do" cellpadding="10" pagesize="<%=nbElt%>"  class="${tableclass}" decorator="org.displaytag.render.DecorateurCheckbox"> 
    				<display:column media="html" paramId="idFichier" title="" > 
    			 <%//  		<input type='checkbox' name='requestScope.DemandeFormBean.listPj' id='requestScope.DemandeFormBean.listPj'  value='requestScope.DemandeFormBean.listPj'  onclick="javascript:avoirNomFichier(value, 'clickFichier');" />%>
    					<html:multibox property="tabSuppr" value='requestScope.DemandeFormBean.listPj'/>
    				</display:column>
    				<display:column  media="html"  href="insertDemande.do?" property="nom_file" paramId="idFichier" paramProperty="id_fichier" style="width: 100px;" titleKey='<i18n:message key="pj"/>' ></display:column>
    			</display:table>
    		</td>
    		<td><html:image src="/GestionDemandes/resources/images/bouton/btnMoins.gif" onclick="javascript:jsParamMgt('suppPj');"  align="right"></html:image></td>
    mon FichierBDT:
    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
     
     
    public class FichierBDT {
     
    	private org.apache.struts.upload.FormFile pieceJointe = null; //champ facultatif d'un fichier lié à la demande
    	private String nom_file ;		//champ facultatif du nom d'un fichier lié à la demande
    	private String id_fichier;
     
    	public String getId_fichier() {
    		return id_fichier;
    	}
    	public void setId_fichier(String id_fichier) {
    		this.id_fichier = id_fichier;
    	}
    	public String getNom_file() {
    		return nom_file;
    	}
    	public void setNom_file(String nom_file) {
    		this.nom_file = nom_file;
    	}
    	public org.apache.struts.upload.FormFile getPieceJointe() {
    		return pieceJointe;
    	}
    	public void setPieceJointe(org.apache.struts.upload.FormFile pieceJointe) {
    		this.pieceJointe = pieceJointe;
    	}
     
    }

  2. #2
    Membre éclairé Avatar de Bubu017
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Avril 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 300
    Par défaut
    Bon ben je vais me répondre à moi tout seul. En fait j'ai trouvé et je met la soluce pour tout ceux à qui ce problème peut arriver.

    ça marche avec les décorateur.
    on a une classe de décorateur ici : DecorateurCheckbox.java
    avec une fonction get

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public String getNom_fichier_a_supp()
    	    {
    	        FichierBDT fichier= (FichierBDT) getCurrentRowObject();
    	        String nom_fichier = fichier.getNom_file();
    	        String input = "<input type=\"checkbox\" name=\"chkbox\"  value=\""+nom_fichier+"\" ></input>";
     
    	        return input;
    	    }
    dans la jsp le display:table est comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <display:table style = "width: 80%;" sort="list" name="requestScope.DemandeFormBean.listPj" id="requestScope.DemandeFormBean.listPj" requestURI="/insertDemande.do" cellpadding="10" pagesize="<%=nbElt%>"  class="${tableclass}" decorator="org.displaytag.render.DecorateurCheckbox"> 
    				<display:column property="nom_fichier_a_supp" title="" ></display:column>						
    				<display:column  media="html"  href="insertDemande.do?" property="nom_file" paramId="idFichier" paramProperty="id_fichier" style="width: 100px;" titleKey='<i18n:message key="pj"/>' ></display:column>		
    			</display:table>
    vous remarquerez que le get est pour la première colonne. DOnc dans le get je récupère le fichierBDT courant (qui est une classe mais ici la lsite est composé de ficheirBDT) et je récupère son nom que je met dans le input. Comme ça dans le display:table j'ai une super checkbox avec comme valeur le nom du ficher.
    FichierBDT:

    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
     
    package lan.nimp.Classes.BDT;
     
    public class FichierBDT {
     
    	private org.apache.struts.upload.FormFile pieceJointe = null; //champ facultatif d'un fichier lié à la demande
    	private String nom_file ;		//champ facultatif du nom d'un fichier lié à la demande
    	private String id_fichier;
     
    	public String getId_fichier() {
    		return id_fichier;
    	}
    	public void setId_fichier(String id_fichier) {
    		this.id_fichier = id_fichier;
    	}
    	public String getNom_file() {
    		return nom_file;
    	}
    	public void setNom_file(String nom_file) {
    		this.nom_file = nom_file;
    	}
    	public org.apache.struts.upload.FormFile getPieceJointe() {
    		return pieceJointe;
    	}
    	public void setPieceJointe(org.apache.struts.upload.FormFile pieceJointe) {
    		this.pieceJointe = pieceJointe;
    	}
     
    }
    et maintenant vu que je voulais les supprimer c'est grâce à une fonction javascript que j'exécute sur un bouton :

    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
     
    function remplirListeChecked(paramAction){
     
    		var f = document.forms['DemandeFormBean'];
     
    		for (var i =0; i < document.getElementsByName("chkbox").length; i++){
     
    			var chkbox = document.getElementsByName("chkbox")[i];
     
    			if (chkbox.checked){
     
    				var n = chkbox.value;
     
    				document.forms['DemandeFormBean'].elements['listChecked'].value+=n+"~";				
    			}		
    		}
    	jsParamMgt(paramAction);
    }
     
    function jsParamMgt(paramAction){
    document.forms['DemandeFormBean'].elements['paramActionServlet'].value=paramAction; 
    if (paramTicket != null && paramTicket !='0' ){
    document.forms['DemandeFormBean'].elements['paramTicket'].value =paramTicket;
    }
     
    alert(document.forms['DemandeFormBean'].elements['paramTicket'].value); 
    alert(document.forms['DemandeFormBean'].elements['paramActionServlet'].value);
    alert(document.forms['DemandeFormBean'].elements['projetMenu'].value);
    document.forms['DemandeFormBean'].submit();
    }
    où listChecked est un String dans le formbean.

    Comme ça dasn la servlet qui est associé au formbean ou pluoto dont le formbean est associé il me suffit de récupérer le String de le traiter et comme ça j'ai ma lsite des case cochées.

    Je ne sais pas si j'ai été très clair mais si vous voulez plus de renseignements dites le moi (si je suis toujours là)

    A peluche

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

Discussions similaires

  1. Problème génant de display:table
    Par benyahia4 dans le forum Struts 1
    Réponses: 1
    Dernier message: 14/04/2014, 17h18
  2. problème display:table-cell et dreamweaver
    Par tsunamichups dans le forum Dreamweaver
    Réponses: 5
    Dernier message: 17/06/2010, 11h38
  3. Problème d'affichage avec Display: table-cell sous IE
    Par kaele dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 25/08/2009, 14h50
  4. problème avec display:table et javascript
    Par florentB dans le forum Struts 1
    Réponses: 5
    Dernier message: 30/08/2007, 11h21
  5. Problème de création de table sous MySql
    Par ducamba dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/06/2003, 09h59

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