1 Reply Latest reply on Jan 9, 2009 2:20 PM by ilya_shaikovsky

    No Update of inputText fields in nested (Sub-) Tables when r

    torsty

      Hello,
      I have a problem with required="true" fields in a form and input fields in a nested (i.e. sub) table.
      My form looks like this:

      <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:s="http://jboss.com/products/seam/taglib"
       xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core"
       xmlns:h="http://java.sun.com/jsf/html" xmlns:a4j="http://richfaces.org/a4j"
       xmlns:rich="http://richfaces.org/rich" template="layout/template.xhtml">
       <ui:define name="body">
      
       <a4j:outputPanel ajaxRendered="true">
       <h:messages styleClass="message" globalOnly="true"/>
       </a4j:outputPanel>
      
      
       <h:form id="myForm">
      
       <rich:panel id="wrapperPanel">
      
       <rich:panel>
       <f:facet name="header">
       <h:outputText value="#{messages.PersonalData}"/>
       </f:facet>
      
       <!--First Name -->
       <s:decorate template="/layout/edit.xhtml" rendered="true">
       <ui:define name="label">
       <h:outputText value="#{messages.PersonalData_firstName}"/>
       </ui:define>
       <h:inputText value="#{person.firstName}" required="false" size="40"/>
       </s:decorate>
      
       <!--LastName -->
       <s:decorate template="/layout/edit.xhtml" rendered="true">
       <ui:define name="label">
       <h:outputText value="#{messages.PersonalData_lastName}"/>
       </ui:define>
       <h:inputText value="#{person.lastName}" required="true" size="40"/>
       </s:decorate>
       </rich:panel>
      
       <rich:panel>
      
       <rich:dataTable styleClass="myTable" value="#{person.contacts}"
       var="contact" id="contactTable">
       <rich:column colspan="2">
       <h:outputText value="#{contact.type}"/>
       </rich:column>
       <rich:subTable styleClass="myTable" value="#{contact.numbers}"
       var="number" id="numberTable">
       <rich:column>
       <f:facet name="header">Type</f:facet>
       <h:outputText value="#{number.type}"/>
       </rich:column>
       <rich:column>
       <f:facet name="header">No.</f:facet>
       <h:inputText value="#{number.text}"/>
       </rich:column>
       </rich:subTable>
      
       </rich:dataTable>
      
       </rich:panel>
       </rich:panel>
       </h:form>
      
       </ui:define>
      </ui:composition>
      
      


      My problem is, when I do enter text in #{number.text} rows of the subTable but not in #{person.lastName} (the required field) the telephone numbers I entered in the subTable get lost (and a message that person.lastName is a required field appears).

      I do have the same problem when I am using a dataTable in a ui:repeat loop.

      When I make #{contact.type} editable without a subTable (only a single dataTable) the entered data does not get lost. So, there seems to be a problem with input fields in "nested" tables.

      Can anyone help?