2013-03-09 90 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>