2010-04-26 145 views
0

下面的代碼顯示了我的應用程序中失敗的東西。 這是一個快速添加信息表單,填寫表單並提交它添加一個新的條目到數據庫並同步我的數據庫。這一切都是用ajax完成的。第一個表單提交正確發生,但第二個表單無法運行所需的ActionListener。第二種形式是發佈到服務器,但saveAction沒有被調用。正如你所看到的,我是一個真正的初學者,擁有這些技術......如果有人看到了這個問題,這將是非常有益的!我遇到了a4j:commandButton和reredering問題

<rich:simpleTogglePanel id="quickaddActivitySimpleToogle" 
switchType="client" 
opened="false" 
label="#{lang.activityModule_quickAdd_panelTitle}"> 
<p><a4j:form id="quickAddForm"> 
<h:outputLabel for="activityNameInput" 
    value="#{lang.activity_name_dp}" /> 
<h:inputText id="activityNameInput" 
    value="#{activityController.quickActivityAdd.name}"> 
</h:inputText> 
<rich:spacer width="20px" /> 

<h:inputHidden id="activityInternalNameInput" 
    value="#{activityController.quickActivityAdd.internalName}" /> 
<rich:spacer width="20px" /> 
<a4j:commandButton id="activityQuickAddFormSubmitBtn" 
    reRender="activityListTable,quickAddForm" 
    actionListener="#{activityController.saveActivity}" 
    value="#{lang.saveBtn_header}" /> 
</a4j:form></p></rich:simpleTogglePanel> 

在此先感謝。

ollie314

+0

我解決我再rendreing與封閉simToogglePanel到A4J問題的一部分:outputPanel。現在第二個Ajax請求正常工作,但表單不刷新... Grrr! :) – ollie314 2010-04-26 14:13:56

回答

0
  1. 我建議把<a4j:form>作爲最外層的元素
  2. immediate="true"commandButton繞過驗證
  3. reRender整個表單 - 添加<h:panelGroup>裏面,改爲改寫它。