Hi all,

 I have a problem with  selectBooleanCheckbox in a datatable. I want to check a 
number of rows and delete them in the backing bean. However the rows marked as 
checked in the backing bean are different than those checked on the UI. However 
the number of rows checked is the same, it just checks wrong rows in the 
backing bean. Can anybody help please. I googled and seached the mailiong 
archiove but did not find any similar problem. Here is the code source: (I am 
using myfaces 1.1.5, tomahawk 1.1.7, jboss 4.0.3SP1)

Th JSP:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"%>
<%@ include  file="/jsps/inc/taglibs.inc"%>   
<html>
<body>
<f:view>
    <h:form styleClass="inputForm">
               <t:dataTable id="precptT" renderedIfEmpty="false"            
                 
columnClasses="column-left,column-left,column-left,column-left,column-left,column-right"
                 rowClasses="row-grey,row-none" 
                 styleClass="table"
                 value="#{PrecBean.precomptes}"             
                 var="precompte">
             
            <h:column>
                <h:selectBooleanCheckbox id="aPrecpt" 
value="#{precompte.checked}"/> 
            </h:column>

            <h:column>
                <f:facet name="header">        
                    <h:outputText value="No Mat" /> 
                </f:facet>
                <h:outputText value="#{precompte.noMat}" />
            </h:column>
            <h:column>
                <f:facet name="header">        
                    <h:outputText value="Name" /> 
                </f:facet>
                <h:outputText value="#{precompte.name}" />
            </h:column>
            
            <h:column>
                <f:facet name="header">
                    <h:outputText value="Amount" />
                </f:facet>
                <h:outputText id="credLEC" value="#{precompte.amount}">
                    <f:convertNumber pattern="##,###" />
                </h:outputText>
            </h:column>             
          </t:dataTable>

           <br>  
   
           <h:commandButton id="ajout" 
               rendered="#{DemORIBean.nbPrecomptes != 0}"
               action="#{PrecBean.deleteSelections}"
               value="-"/>
    </h:form>
</f:view>
</body>
</html>


The backing bean:


public class PrecompteBean implements Serializable
{
    private static final long serialVersionUID = -1;
    private List<Precompte> precomptes;

       public List<Precompte> getPrecomptes() 
       {
            // Get data from database
            return precomptes;
       }

       public void setPrecomptes(List<Precompte>  precomptes) 
       {
            this.precomptes = precomptes;
       }

       // Method to delete the selected row. 
    public String deleteSelections()
    {        
        for( Precompte prcpt: this.precomptes)
        {
            if( prcpt.isChecked())
            {
                // ... delete 
            }
        }   
        return null;
    }
}


The Precompte value object to hold data from each row of the database table

public class Precompte implements Comparable, Serializable
{
         private static final long serialVersionUID = -1L;
         private boolean checked;
         // ... declarations of other properties


       /**
        * @return Returns the checked.
        */
      public boolean isChecked()
      {
           return this.checked;
      }

    /**
     * @param checked The checked to set.
     */
    public void setChecked( boolean checked)
    {
        this.checked = checked;
    }

     // .... implementation of other getters and setters
}


      

Reply via email to