5 Replies Latest reply on Jun 19, 2008 11:53 AM by yacin00

    dataModel dataModelSelection first row

    yacin00

      Hi, i'm trying to delete a row from a datatable, but always the first row is removed.


      registerActionBean:


      @Stateful
      @Scope(ScopeType.SESSION)
      @Name("registration")
      public class RegisterActionBean implements RegisterActionLocal {
      
          
          @In
         private EntityManager em;
           
           
         @In(create=true)
         @Out
         private Customer customer;
         
      
         @DataModel(value="conta")
         private List<Contact> contacts;
         
         
         @DataModelSelection("conta") 
         private Contact selectedContact;
         
         @In(create=true,required=false)
         @Out(required = false)
         private Contact contact;
         
         
         @In
         private FacesMessages facesMessages;
         
         
      
           public void addContact() {
               contacts = (contacts==null)? new ArrayList<Contact>():contacts; 
               contacts.add(contact);
               contact = null;    
           }
      
           public void deleteContact (){
              
              contacts.remove(selectedContact);
          
          }
          
          
          
          @Remove
         public void destroy() {}
      }



      contact.xhtml


      <ui:composition xmlns="http://www.w3.org/1999/xhtml"
                      xmlns:ui="http://java.sun.com/jsf/facelets"
                      xmlns:h="http://java.sun.com/jsf/html"
                      xmlns:f="http://java.sun.com/jsf/core"
                      xmlns:s="http://jboss.com/products/seam/taglib"
                      xmlns:a="http://richfaces.org/a4j"
                      xmlns:rich="http://richfaces.org/rich"
                      template="#{theme['template.pageClassic']}">
                          
        
          <ui:define name="pageContent">
                                              
       <h:form> 
                                        
      <rich:panel>
          <f:facet name="header">
                <h:outputText value="#{messages['Registration']}"/>
          </f:facet> 
                                       
           <s:validateAll>                
           <h:panelGrid columns="3">           
      
           <h:outputText value="#{messages['contact']}#{messages['mail']}"/>
                      
                      <h:inputText label="contact" id="Contact" value="#{contact.email}" required="true" >
                          <a:support  event="onblur"/>
                          <f:validator validatorId="mailValidator"/>
                      </h:inputText>   
                  
                  
      
                    <rich:message for="Contact">
                            <f:facet name="passedMarker">
                                   <h:graphicImage  value="#{theme.img}passed.gif" />  
                            </f:facet>
                            <f:facet name="errorMarker">
                                  <h:graphicImage  value="#{theme.img}error.gif" />  
                            </f:facet>
                     </rich:message> 
                     
                             
               
           </h:panelGrid>
           </s:validateAll> 
      
      </rich:panel>       
              
           
               <h:dataTable id="contacts" value="#{conta}" var="cont" rendered="#{conta.size > 0}">
                
               <h:column>
                     <f:facet name="header">#{messages['Mail']}</f:facet>
                     #{cont.email}
                </h:column>
                              
                      <h:column>
                      <s:link id="delete" value="#{messages['Delete']}" action="#{registration.deleteContact}"/>
                      </h:column>
              </h:dataTable>
              
              
      
      
          <h:commandButton action="add" value="#{messages['addContact']}"/>
                
       </h:form>    
       <h:form>
            <h:commandButton action="prev" value="#{messages['back']}"/>   
            <h:commandButton action="next" value="#{messages['continue']}" rendered="#{conta.size > 0}" />
       </h:form>   
       
          </ui:define>
      </ui:composition>