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.