2013-03-09 83 views
0

我试图实现一个richfaces数据表。 每行都有一个richfaces日历,两个richfaces自动完成和3个输入文本。致富自动完成值

我有另一种形式的命令按钮。 当我在数据表中的给定行输入一些值:

  • 显示有效日期
  • 两个autocpmpletes做工精细到从bean检索数据选择
  • 我在输入输入值文本

但是,当我点击“计算”按钮 只有文本输入发送回支持豆。

这是迄今为止我想出了(这是我的XHTML文件的简化版本)

<h:body> 
    <rich:panel> 
       <h:form id="legForm"> 
        <rich:dataTable value="#{bean.legsForDisplay}" var="legForDisplay"> 
         <rich:column> 
          <f:facet name="header"> 
           <h:outputText value="Departure Date (UTC)" /> 
          </f:facet> 
          <rich:calendar value="#{legForDisplay.departureTime}" 
           locale="#{bean.locale}" popup="true" 
           datePattern="#{legForDisplay.datePattern}" 
           converter="dateConverter" inputStyle="width:80px"> 
           <f:ajax event="change" execute="@this"/> 
          </rich:calendar> 
         </rich:column> 
         <rich:column> 
          <f:facet name="header"> 
           <h:outputText value="ETD (HHmm)" /> 
          </f:facet> 
          <h:inputText value="#{legForDisplay.etd}" style="width : 30px;"> 
           <f:ajax event="change" execute="@this"/> 
          </h:inputText> 
         </rich:column> 
         <rich:column> 
          <f:facet name="header"> 
           <h:outputText value="ADEP" /> 
          </f:facet> 
          <rich:autocomplete mode="cachedAjax" minChars="2" 
           autocompleteMethod="#{bean.autocomplete}" 
           autofill="false" value="#{legForDisplay.adep}"> 
           <f:ajax event="change" execute="@this"/> 
          </rich:autocomplete> 
         </rich:column> 
         <rich:column> 
          <f:facet name="header"> 
           <h:outputText value="ADES" /> 
          </f:facet> 
          <rich:autocomplete mode="cachedAjax" minChars="2" 
           autocompleteMethod="#{bean.autocomplete}" 
           autofill="false" value="#{legForDisplay.ades}"> 
           <f:ajax event="change" execute="@this"/> 
          </rich:autocomplete> 
         </rich:column> 
         <rich:column> 
          <f:facet name="header"> 
           <h:outputText value="Male Pax" /> 
          </f:facet> 
          <h:inputText value="#{legForDisplay.malePax}"> 
           <f:ajax /> 
          </h:inputText> 
         </rich:column> 
         <rich:column> 
          <f:facet name="header"> 
           <h:outputText value="Female Pax" /> 
          </f:facet> 
          <h:inputText value="#{legForDisplay.femalePax}"> 
           <f:ajax /> 
          </h:inputText> 
         </rich:column> 
         <rich:column> 
          <f:facet name="header"> 
           <h:outputText value="Child Pax" /> 
          </f:facet> 
          <h:inputText value="#{legForDisplay.childPax}"> 
           <f:ajax /> 
          </h:inputText> 
         </rich:column> 
        </rich:dataTable> 
       </h:form> 
    </rich:panel> 
    <rich:panel> 
     <h:form> 
      <a4j:commandButton value="Compute Mission" 
       action="#{bean.doStuff}" 
       render="@form"> 
      </a4j:commandButton> 
     </h:form> 
    </rich:panel> 
</h:body> 

如何设置从日历/自动完成组件的值转换成相应的legForDisplay元素从legsForDisplay列表?

我试着阅读关于这个问题的所有相关问题,但找不到一个解决这个问题,这似乎相当基本的...

感谢

编辑:

如果在富数据表中放置一个虚拟提交按钮,一切正常。我可以按下这个虚拟按钮,然后“计算任务”和值已经存储在bean中。

<a4j:commandButton value="Submit" 
    action="#{missionHandler.dummySubmit}" limitRender="true" 
    render="legTable"> 
</a4j:commandButton> 

我担心的是,我想从“计算任务”按钮,该按钮位于另一面板,另一种形式提交,无需点击“虚拟按钮”之首。

+0

我封装在一个大单的一切。它可以工作,因为当我按下“计算”按钮时,会提交BIG表单,并检索值。不知道这是最好的事情。 – facewindu 2013-03-11 08:11:05

回答

0

尝试使用这种无大单:

<a4j:commandButton value="Submit" execute="legForm" 
    action="#{missionHandler.dummySubmit}" limitRender="true" 
    render="legTable"> 
</a4j:commandButton>