Bonjour,

j'ai une page jsf contenant des checkboxes. J'ai une checkbox "principale" qui permet de sélectionner/désélectionner toutes les autres. Mais j'ai un petit souci de vitesse. Il faut 2 secondes pour que toutes les 50 checkboxes soient cochées...rien de grave, mais ce n'est pas très propre...

J'aimerais savoir s'il y a d'autres possibilités pour faire la même chose, mais bien plus performantes..

Voilà mon code:

Fonction Javascript:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
function selectUnselectAllFields(checkbox)
{
	var elements = document.forms.tSearch.elements;
	for (var i = 0; i < elements.length; i++)
	{
		var el = elements[i];
		if (el.name != null && /^tSearch:cb\d*/.test(el.name))			
		{
			el.checked = checkbox.checked;
		}
	}
}
JSF:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<h:panelGrid columns="2" columnClasses="formInputSmallFont, formInputSmallFont">
	<f:verbatim>
		<input type="checkbox" onclick="selectUnselectAllFields(this)"></input>
	</f:verbatim>
	<h:outputText value="Select All"/>
</h:panelGrid>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<h:panelGrid columns="12" columnClasses="formInputSmallFont,formInputSmallFont,formInputSmallFont,formInputSmallFont,formInputSmallFont,formInputSmallFont,formInputSmallFont,formInputSmallFont,formInputSmallFont,formInputSmallFont,formInputSmallFont,formInputSmallFont">
	<h:selectBooleanCheckbox id="cbTID" value="#{terminalManager.cbTID}"/>
	<h:outputText value="TID" />
	<h:selectBooleanCheckbox id="cbMID" value="#{terminalManager.cbMID}"/>
	<h:outputText value="MID" />
 
.....autres 48 Checkbox.....
</h:panelGrid>