根据复选框显示/隐藏表单的一部分

时间:2013-09-23 11:26:54

标签: jsf primefaces

我遇到了与此主题中描述的类似问题: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被调用并且属性设置正确,我可以在响应中看到该表单,但它不会在页面上呈现。

可能出现什么问题?

1 个答案:

答案 0 :(得分:4)

这是一个典型的问题,有许多相关的答案。只需在一个组件中包含输出面板,例如<h:panelGroup>,它总是呈现并且ajax更新它:

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