2013-09-23 70 views
0

我遇到類似於此主題中描述的問題:Show/hide JSF2 form using selectBooleanCheckbox。但在該線程提出的解決方案不爲我工作。我想要一個可以通過選中複選框來擴展的表單。根據複選框顯示/隱藏表格的一部分

我的設置如下:

<p:selectBooleanCheckbox id="lookupCheck" value="#{addressDetailBean.addQLookup}"> 
    <p:ajax event="change" update="qlookupcolumn1" process="@this"/> 
</p:selectBooleanCheckbox> 
<p:outputPanel id="qlookupcolumn1" rendered="#{addressDetailBean.addQLookup}"> 
    <h2>#{msg['qloookup.new.title']}</h2> 
    <ui:include src="/WEB-INF/includes/integration/qlookupDetailColumns.xhtml"> 
     <ui:param name="bean" value="#{addressDetailBean}" /> 
    </ui:include> 
</p:outputPanel> 

但是,當我選中該複選框形式不會被渲染。 Bean被調用並且屬性設置正確,我可以在響應中看到表單,但它不在頁面上呈現。

什麼可能是錯誤的?

+0

它不工作,因爲你想Ajax的更新這是從來沒有物理渲染到HTML組件輸出,與你找到的更新父母的答案相反。 – BalusC

+0

這裏有所有重複的問題:http://stackoverflow.com/questions/linked/9010734把你的選擇。 – BalusC

+0

謝謝你解釋那裏發生了什麼。 – DominikM

回答

4

這是一個典型的問題,並有許多相關的答案。就在組件中擁抱你的輸出面板,像<h:panelGroup>,這總是呈現,而是Ajax的更新:

<p:selectBooleanCheckbox ...> 
    <p:ajax update="refresh" process="@this"/> 
</p:selectBooleanCheckbox> 
<h:panelGroup id="refresh" ...> 
    <p:outputPanel rendered=... /> 
<h:panelGroup/> 
+0

這工作。謝謝。 – DominikM

+0

不客氣! – skuntsel