【问题标题】:Show/Hide part of the form based on checkbox根据复选框显示/隐藏部分表单
【发布时间】:2013-09-28 06:43:15
【问题描述】:

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

可能出了什么问题?

【问题讨论】:

  • 它不起作用,因为您正在尝试 ajax 更新一个从未物理呈现为 HTML 输出的组件,这与您找到的更新父级的答案相反。
  • 这里是所有重复的问题:stackoverflow.com/questions/linked/9010734 选择。
  • 感谢您解释那里发生的事情。

标签: jsf primefaces


【解决方案1】:

这是一个典型的问题,有很多相关的答案。只需将您的输出面板包含在一个组件中,例如 &lt;h:panelGroup&gt;,它总是呈现并 ajax 更新它:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多