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 :

Récupérer des lignes cochées


Sujet :

Struts 1 Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 62
    Points : 36
    Points
    36
    Par défaut Récupérer des lignes cochées
    Bonjour la communauté, je travaille avec le framswork struts 2 j'utilise displaytag pour afficher mes tableaux.

    Sur le résultat de mon tableau je dois cocher des lignes pour les récupérer derrière. Avec comme clé primaire unique je fesais au niveau de la page jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <display:table name="list" uid="extable" export="false">
    <display:column title="id"  property="id" ></display:column>
    <display:column title="colonne2" property="colonne2" ></display:column>
    <display:column title="" headerScope="col">
    <s:checkbox name="checkedIds" fieldValue="%{#attr.row.id}" />
    </display:column>
    </display:table>
    Au niveau de la classe action
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private Long[] checkedIds;
    public String action() {
    for(int i=0;i<checkedIds.length;i++){
    TableEx tableEx = tableS.find(checkedIds[i]);
    //traitement
    }
    et la tout se passe bien mais maintenant j'ai une clé composite (prenons exemple sur les 2 lignes de table)
    je sais pas comment faire.
    Je sais sur jsf on pouvais faire sur la table rich

    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
    <rich:dataTable binding="#{dataTable}" value="#{liste}" var="liste"> 		
    <rich:column>    	
    <h:outputText value="#{liste.id}"/>
    </rich:column>
     
    <rich:column> 
    <h:outputText value="#{liste.colonne2}" />	
    </rich:column>
     
    <rich:column>
    <f:facet name="header"><h:selectBooleanCheckbox /></f:facet>
    <h:selectBooleanCheckbox binding="#{checkbox}"></h:selectBooleanCheckbox>
    </rich:column>
     
    </rich:dataTable>
    et au niveau d la classe action faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private UIData dataTable;
    private UISelectBoolean checkbox;
    public void action(ActionEvent event){
    size = dataTable.getRowCount();
    for (int i = 0; i < size; i++) {
    dataTable.setRowIndex(i);
    if (checkbox.isSelected()) {
    //traitement
    }
    et on on remarquea que la clé soit composite ou non on aura le méme résultat
    sur struts2 est ce qu'on pourrait adopter ce genre de methode et comment faire

    Au niveau du display tag est ce qu'on pourrait mettre un bouton checkbox sur le l'attribut title comme sur l'exemple dans jsf que j'ai défini au dessus sur la facet
    merci

  2. #2
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 62
    Points : 36
    Points
    36
    Par défaut
    Salut tout le monde
    J'ai eu a régler le probléme du "coche tout"
    j'ai créé un script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript">
    function checkall(theElement) {	
    var theForm = theElement.form;
    var i = 0;
    for(i=0; i<theForm.length; i++){
    if((theForm[i].type == 'checkbox') && (theForm[i].name != 'selectall')){
    theForm[i].checked = theElement.checked;
    	}
        }
    }
    </script>
    puis au niveau du display tag
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <display:column title="<input type='checkbox' onClick='checkall(this);'/>" />
    j'ai pu utilisé un decorator pour recupérer les lignes cochés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class ClasseDecorator extends TableDecorator { 
     
    public String getChoix()
    {
    TableEx tableEx= (TableEx) getCurrentRowObject();
    String tavleId = tableEx.getId();
    return "<input type='checkbox' name='check' property='choix' value='"+tavleId +"' id='selected" + tavleId + "' />";
    }	    
    }
    au niveau de la page jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <display:table name="list" decorator="ClasseDecorator">
    <display:column title="id"  property="id" ></display:column>
    <display:column title="colonne2" property="colonne2" ></display:column>
    <display:column title="<input type='checkbox' onClick='checkall(this);'/>" property="choix" ></display:column>
    </display:table>
    et enfin au niveau de la classe action faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String[] test;
    test = getRequest().getParameterValues("check");
    Ca marche dans ce cas cad la clé primaire est un champ. maintenant mon probléme est que si on voulais recupérer tous les champs(id et colonne2) cad si nous avons une clé composite (clé primaire est champs multiple)
    merci

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

Discussions similaires

  1. Struts 1 : Récupérer les ids des lignes cochés
    Par amine1980 dans le forum Struts 1
    Réponses: 0
    Dernier message: 27/03/2015, 18h00
  2. [PowerShell] Récupérer des lignes ayant une case à cocher cochée dans Excel
    Par n0bul4r dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 10/06/2014, 12h56
  3. Réponses: 3
    Dernier message: 09/02/2007, 15h26
  4. Réponses: 8
    Dernier message: 30/11/2006, 19h32
  5. Réponses: 1
    Dernier message: 05/10/2006, 10h56

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