按钮按下时显示面板

6

我有一个primefaces中的按钮和面板。当我按下按钮时,我希望面板可见。如何在primefaces中实现?

我有以下代码:

        <p:commandButton value="Search" ajax="false"
        actionListener="#{myBean.searchPatients}" onclick="panelwv.show();">
    </p:commandButton>
    <p:panel widgetvar="panelwv" visible="false" closable="true" toggleable="true" >

但它无法正常工作。

2个回答

8

您的代码中有一个拼写错误,您需要的属性是widgetVar

<p:commandButton value="Search" ajax="false"
    actionListener="#{myBean.searchPatients}" onclick="panelwv.show();">
</p:commandButton>
<p:panel widgetVar="panelwv" visible="false" closable="true" toggleable="true"/>

如果您不想完全渲染面板,您应该考虑使用组件的rendered属性。


如果我想在searchPatients方法完成时显示面板,我应该改变什么? - loubas
1
在这种情况下,您需要等待搜索完成,然后打开面板。oncomplete="panelwv.show();". 您还应该更改 ajax="true",我不确定如何使用 ajax="false" - Akos K
使用ajax="true"时,面板中的元素不会从我的bean计算,而使用ajax="false"时,面板根本不会出现。 - loubas
由于这些评论讨论的问题已经不再是“当按钮被按下时显示面板”的问题,我建议您发布一个新的问题并将这个问题与正确答案一起留下。 - Akos K
无论如何,您的面板元素未在bean中计算可能意味着您没有在bean中计算这些值。如果您认为这不是问题,请发布一个新问题并描述具体问题。还请参阅我的先前评论。 - Akos K

0

你可以使用对话框来实现这个功能。你也可以检查一下这个。

https://www.primefaces.org/showcase/ui/overlay/dialog/basic.xhtml

<p:commandButton value="Search" ajax="false"
actionListener="#{myBean.searchPatients}" oncomplete="PF('dlg1').show();">
</p:commandButton>
<p:dialog header="Basic Dialog" widgetVar="dlg1" minHeight="40">
<p:panel  visible="false" closable="true" toggleable="true"/>
</p:dialog>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接