p:ajax更新后显示面板不起作用

时间:2017-02-03 09:40:14

标签: ajax jsf primefaces jsf-2 jsf-2.2

我有一个在首次打开页面时折叠的面板,应该使用附加到selectOneButton的p:ajax进行更新

<p:selectOneButton required="true"
    value="#{bean.jobProfile.salary.subjectToDisclosure}"
    id="salarySubjectToDisclosure">
    <f:selectItem itemValue="#{true}" itemLabel="#{msg['yes']}" />
    <f:selectItem itemValue="#{false}" itemLabel="#{msg['no']}" />
    <p:ajax
        listener="#{bean.changeSubjectToDisclosure()}"
        update="@(.paymentDetailsSliderHeaderUpdateable) grossPaymentWrapper" />
</p:selectOneButton>

因此。有2个选项。是和否。是的,具有id grossPaymentWrapper的面板应该显示并且不会折叠。

小组:

<p:panel id="grossPaymentWrapper">
    #{!bean.jobProfile.salary.subjectToDisclosure}
    <p:panel toggleable="true"
                collapsed="#{!bean.jobProfile.salary.subjectToDisclosure}">

选择其他按钮时,行#{!bean.jobProfile.salary.subjectToDisclosure}始终会更新显示true或false,但两个选项都不显示该面板。

感谢帮助

感谢。

2 个答案:

答案 0 :(得分:0)

您是否尝试过设置内部toggleable="true"组件的属性p:panel属性?

p:面板组件的文档将折叠属性描述为

  

“将可切换面板渲染为已折叠。默认为false。”

文档链接:http://www.primefaces.org/docs/vdl/6.0/core/primefaces-p/panel.html

答案 1 :(得分:0)

您可以使用JavaScript执行此操作,Primfaces p:panel有一个名为toggle()的JavaScript函数,您可以通过向widgetVar添加p:panel来调用toggle,调用{{ 1}}该组件的功能。

<p:panel id="..." widgetVar="panel">
...
</p:panel>

然后使用:PF('panel').toggle()