Bonjour,

actuellement, j'utilise les technologies jsf et richfaces pour mettre en place un tableau avec une colonne contenant une checkbox sur chaque ligne. En entête de cette colonne, j'ai une checkbox dite globale qui dès lors qu'on la coche coche toutes les autres.

code la page html :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<rich:column width="5%" label="action" id="colonne_checkbox">
						<h:selectBooleanCheckbox id="selectElement" value="#{Action.checkbox}" 
							<a4j:support event="onclick" action="#{Action.selected}" reRender="#{Action.checkbox}" process="exportPdf" />
						</h:selectBooleanCheckbox>
						<f:facet name="header">
							<h:selectBooleanCheckbox id="selectAllElement" value="#{Action.checkboxAll}" >
								<a4j:support event="onclick" action="#{Action.cocherAll}" process="selectAllElement" reRender="selectElement"/>
							</h:selectBooleanCheckbox>
						</f:facet>
					</rich:column>
				</rich:extendedDataTable>

Pour cela, j'ai utilisé des requêtes serveurs avec un code qui est celui-ci :
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
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;
			}
		}
	}
Cependant, cela alourdi mon appli car les requêtes sont fait coté serveur. J'aimerais pouvoir faire cela coté javascript mais je ne vois pas trop comment. Si quelqu'un pouvait m'aider.

De plus, lorsque l'on clique la checkobx globale, toutes les autres checkbox doivent être cochées. et quand on en décoche une, la checkbox globale doit être décochée mais je n'arrive pas à mettre en place cette action.

Si quelqu'un pouvait m'aider... Merci beaucoup par avance !