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 :

[jsf, richfaces, ajax] Sélection de checkbox.


Sujet :

JSF Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut [jsf, richfaces, ajax] Sélection de checkbox.
    Bonjour tout le monde,

    j'ai actuellement un problème que je n'arrive pas du tout à résoudre. En effet, j'aimerais via des checkbox, récupérer les lignes qui ont été sélectionnées.

    Pour l'instant, pour pouvoir y parvenir, j'ai mis une action sur le clique de ma checkbox : lorsque l'utilisateur clique sur une checkbox, cette ligne est ajoutée à une liste. Or, admettons, que l'utilisateur se soit trompé et désire la retirer de la sélection, l'action est aussi déclenchée et je me retrouve avec deux même éléments dans ma liste.

    Voici le code de ma page xhtml :

    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
     
    <!-- Mise en place des checkbox -->
    <rich:extendedDataTable ajaxRendered="false" enableContextMenu="false"
    					value="#{controller.detailedVariables}" var="detailedVar" rendered="#{controller.monObjet.class.simpleName == 'Table'}"
    					id="id_tablevariables" height="400px" sortMode="single" 
    					selectionMode="single" width="98%"  rowKeyVar="row" ajaxKeys="#{controller.keysSet}" binding="#{GenererFichePdf.extendedDataTable}" >
    [...]
    					<rich:column width="5%" label="Export" id="col_checkbox">
    						<h:selectBooleanCheckbox id="selectElement" value="#{GenererFichePdf.checkbox}" rendered="#{RechercheVariableViewerController.schemaIsTopFiche}">
    							<a4j:support event="onclick" action="#{GenererFichePdf.selected}" reRender="#{GenererFichePdf.checkbox}" process="exportPdf" />
    						</h:selectBooleanCheckbox>
    						<f:facet name="header">
    							<h:selectBooleanCheckbox id="selectAllElement" value="#{GenererFichePdf.checkboxAll}" >
    								<a4j:support event="onclick" action="#{GenererFichePdf.cocherAll}" process="selectAllElement" reRender="selectElement"/>
    							</h:selectBooleanCheckbox>
    						</f:facet>
    					</rich:column>
    				</rich:extendedDataTable>
    Et voici le code de mes actions :

    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
     
    private UIExtendedDataTable extendedDataTable;
    	private boolean checkbox ;
    	private boolean checkboxAll;
     
    	public List<Fiche> listFiche2Pdf = new ArrayList();
    	private List listSelect = new ArrayList();
    	private String fileName = null;
     
     
    	public void selected(){
    		listSelect.add(extendedDataTable.getRowData());
    	}
     
     
    	public void cocherAll(){
     
    		int size=extendedDataTable.getRowCount();
    		if(checkboxAll){
    			for(int i=0;i<size;i++){
    				this.extendedDataTable.setRowIndex(i);
    				this.checkbox = true;
    			}
    		}else{
    			for(int i=0;i<size;i++){
    				this.extendedDataTable.setRowIndex(i);
    				this.checkbox = false;
    			}
    		}
    	}
     
    	public void createListFiche2Pdf() throws SofFwkException{
     
    	Date dateModifVar = new Date();
     
    		if(checkboxAll){
    			int size = this.extendedDataTable.getRowCount();
    			System.out.println(size);
    			for(int i=0; i<size; i++){
    				this.extendedDataTable.setRowIndex(i);
    				List datas = (List) extendedDataTable.getValue();
     
    				if(checkbox){
    					listSelect.add(datas.get(i));
    				}
    			}
    		}
             }
    La méthode "createListFiche2Pdf()" n'est appelée que lorsque je clique sur un bouton.

    Je vous remercie d'avance pour l'aide que vous pourrez m'apportez et pour avoir au moins lu mon problème.

  2. #2
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 71
    Points
    71
    Par défaut
    Je suis pas un expert mais moi, j'utiliserai une datamodel et traiterai la table dans son entier lors de la soumission.

    Dans ton managed bean, tu aurais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private DataModel<Item> items;
     
    public DataModel<Item> getItems() {
            return items;
        }
     
    public void setItems(DataModel<Item> items) {
            this.items= items;
    }
    Je suis pas sur de t'avoir aidé, mais on sait jamais.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Merci pour ta réponse mais j'ai réussi à me débrouiller en fait !

  4. #4
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 71
    Points
    71
    Par défaut
    Tu peux toujours expliquer comment (pour la postérité) et mettre ton post en résolu

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/12/2010, 19h25
  2. [Java, Jsf, Richfaces, Javascript] Checkbox
    Par toMuch dans le forum JSF
    Réponses: 3
    Dernier message: 22/09/2010, 11h15
  3. [JSF+Richfaces] Raffraichissement checkbox
    Par toMuch dans le forum JSF
    Réponses: 0
    Dernier message: 01/09/2010, 13h36
  4. Réponses: 11
    Dernier message: 10/04/2007, 07h02
  5. Sélection de checkbox
    Par frogs dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 22/02/2005, 14h49

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