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 :
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 <!-- 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>
La m�thode "createListFiche2Pdf()" n'est appel�e que lorsque je clique 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
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)); } } } }
Je vous remercie d'avance pour l'aide que vous pourrez m'apportez et pour avoir au moins lu mon probl�me.
Partager