2011-11-18 17 views
0

我需要一些richfaces的幫助。這是我需要做:在richfaces中啓用Ajax確認?

//user clicked on a <h:selectBooleanCheckbox/> 
if(!checkbox.checked) { 
    ajax_call_method0_on_bean 
    return 
} 
else { 
    boolean_value = ajax_call_method1_on_bean 
    if(boolean_value == true) show_confirm 
     if(confirm_result == false) return 

    //if(boolean_value == false OR confirm_result == false) 
    ajax_call_method0_on_bean 
} 

基本上我有,點擊取消選中時,首先要驗證是否必須顯示一個確認框,然後(如果不需要確認複選框或確認是確定)調用的最後行動

回答

1

的一些要點:

1。您可以使用<rich:modalPanel>來定義確認彈出窗口。在確認彈出窗口中,OK按鈕將調用beans的doFinalAction()

<rich:modalPanel id="confirmPopUp" width="350" height="100"> 
     <f:facet name="header"> Confirm popup</f:facet> 
      <a4j:commandButton value="OK" action="#{bean.doFinalAction}" /> 
      <br /> 
      <a4j:commandButton value="Close" onclick="#{rich:component('confirmPopUp')}.hide()"/> 
</rich:modalPanel> 

2。您可以使用<a4j:jsFunction>來定義一個javascript函數,該函數將調用bean的方法來檢查是否需要顯示確認框。如果需要確認,此方法的責任是設置布爾標誌(bean.requireConfirm)爲true。否則,執行doFinalAction()

<a4j:jsFunction name="checkRequireConfirm" 
       action="#{bean.checkRequireConfirm}" 
       oncomplete=" if (#{bean.requireConfirm}) {#{rich:component('confirmPopUp')}.show()}"> 
</a4j:jsFunction> 

檢查bean.requireConfirmoncomplete屬性.Show確認彈出,如果這是真的。

3。添加onclick事件處理程序<h:selectBooleanCheckbox>,這就要求在規定的JS checkRequireConfirm()(2)如果未選中此複選框

<h:selectBooleanCheckbox onclick="if (!this.checked){checkRequireConfirm()}"/>