wählen Sie Alle Kontrollkästchen in JSF ohne Verwendung von Javascript

Ich versuche zu selektieren/deselektieren aller Checkboxen in der datatable mit einer einzelnen checkbox. Als ich bin versucht, es auf dem server, ich bin nicht in der Lage, dies zu tun. Ich habe umgeschaut nach Lösungen, konnten aber nicht, wie das zu erreichen auf der server-Seite.

Hier ist der code.

xhtml-Datei###

<rich:column styleClass="center-aligned-text">
         <f:facet name="header">
          <h:selectBooleanCheckbox id="selectAll" title="selectAll" valueChangeListener="#{workspace.selectAllComponents}">
           <a4j:support event="onclick" reRender="listcomponents"/>
          </h:selectBooleanCheckbox>
         </f:facet>

         <h:selectBooleanCheckbox id="selectComponent" 
          value="#{workspace.selectedComponentIds[componentInfo.id]}">
         </h:selectBooleanCheckbox>
        </rich:column>

Java-Datei

//Select All and delete
 public void selectAllComponents(ValueChangeEvent event){

  //If the check all button is checked, set all the checkboxes as selected 
  if(!selectAll)
  {
   changeMap(selectedComponentIds,true);
   setSelectAll(true);
  }
  else //If the button is unchecked, unselect all the checkboxes
  { 
   changeMap(selectedComponentIds,false);
   setSelectAll(false);
  }
 }

 public void changeMap(Map<Long,Boolean> selectedComponentMap, Boolean blnValue){
  if(selectedComponentMap != null){
   Iterator<Long> itr = selectedComponentMap.keySet().iterator();
   while(itr.hasNext()){
    selectedComponentMap.put(itr.next(), blnValue);
   }
   setSelectedComponentIds(selectedComponentMap);
  }
 }

Ich bin markieren Sie alle Werte in der Liste als true wenn der checkbox überprüft wird und false wenn die Option deaktiviert ist.

Aber die Seite nicht neu laden, die Daten ordnungsgemäß.

Ist meine Methode, um Ansatz, um das problem zu korrigieren? Oder ist es eine effiziente alternative?

InformationsquelleAutor Abdul | 2010-10-15

Schreibe einen Kommentar