2014-01-18 23 views
0

如何更新h:panelGroup使用f:ajax.When,我選擇h:selectBooleanCheckbox從officeAdd1獲取值並將此值設置爲headOfficeAdd1.Am在bean中獲取officeAdd1值,但我想要將值更新到headOfficeAdd1。如何更新h:panelGroup使用f:ajax

謝謝...

 <h:form id="form"> 
    <p:panel id="display">    
       <p:spacer width="20" /> 
       <h:panelGrid columns="6"> 
        <h:outputLabel value="Address:" 
         style="text-align: left;display: block;width:130px;" /> 
        <p:inputTextarea 
         value="#{companyInformationBean.current.officeAdd1}" 
         autoResize="true" style="width:170px;" maxlength="150" /> 

       </h:panelGrid> 

       <h:panelGrid columns="6"> 
        <h:selectBooleanCheckbox id="remember" 
         value="#{companyInformationBean.current.checkBox}"> 
         <f:ajax event="click" execute="@form" 
          listener="#{companyInformationBean.checkBoxValue}" /> 
        </h:selectBooleanCheckbox> 
        <h:outputLabel value="Same as Registered Office Address" 
         style="text-align: left;display: block;" /> 
        <p:spacer width="20" /> 

       </h:panelGrid> 
       <p:spacer width="20" /> 
       <h:panelGroup id="hidepanelgroup"> 
       <h:panelGrid id="getaddress" columns="6"> 
        <h:outputLabel value="Head Office Address:" 
         style="text-align: left;display: block;width:130px;" /> 
        <p:inputTextarea id="headadd" 
         value="#{companyInformationBean.current.headOfficeAdd1}" 
         autoResize="true" style="width:170px;" maxlength="150" /> 

       </h:panelGrid> 
       </h:panelGroup> 
    </p:panel> 
    </h:form> 

豆:

 public void checkBoxValue() 
{ 
    if(current.getCheckBox()==true) 
    { 

      logger.info("getofadd"+current.getOfficeAdd1()); 
      current.setHeadOfficeAdd1(current.getOfficeAdd1()); 

    } 
    else 
    { 
      logger.info("checkbox value false"); 
    } 
} 
+0

你濫用它。在發送表單時,輸入文本區域值在'#{companyInformationBean.current.headOfficeAdd1}'中設置,您不必使用setter方法顯式設置它,JSF就可以完成。 –

回答

0

你需要指定客戶端ID渲染的在<f:ajax render>屬性。

因此,假定所述第二文本區域具有headadd的ID,這應該做到:

<f:ajax ... render="headadd" /> 

無關到混凝土問題,比較針對布爾值布爾值的布爾表達式確實沒有按」沒有任何意義。只需直接檢查布爾值。

if (current.getCheckBox()) 

順便說一句,嘗試使用self-documenting屬性和方法名稱。物業名稱remember會更合適。

+0

感謝BalusC它工作。但是,我問一個更多的問題是可以渲染多個字段。如果我渲染多個字段,它顯示像UI佈局初始化錯誤的錯誤。 –

+0

是的,你可以在'render'屬性中指定客戶ID spaceseparated,就像'render =「headadd anotherId」'一樣。 – BalusC

+0

更改'event =「更改」'回到'event =「點擊」'或者完全刪除它。複選框的默認值是'click'。對於「整體形式致殘」的具體問題,目前尚不清楚。你最好在SSCCE風格的代碼中提出一個新的問題。 – BalusC