今天我在P5中发现了一个新的bug。当我更新按钮,覆盖面板是指,它不再工作-覆盖面板不再显示。
作为一种变通方法,我确实使用PF('widgetVar').loadContents();
,但这感觉非常不舒服。
在PF4中,这在没有任何变通的情况下工作。
有人有解决办法吗?
我的解决方案:
- 不更新单个按钮打开叠加,更新两个
- 同时添加
dismissable="false" showCloseIcon="true"
- 在对话框上使用覆盖的情况下:添加
appendTo="@(body)"
示例代码:
<p:commandButton value="updateSection" update=":form:overlayPanelGroup" />
<h:panelGroup id="overlayPanelGroup">
<p:commandButton id="openOverlayBtn" process="@this" value="openOverlay"/>
<p:overlayPanel for="openOverlayBtn" showEffect="fade" hideEffect="fade" dismissable="false" showCloseIcon="true" appendTo="@(body)">
<h:outputText value="textSample"/>
</p:overlayPanel>
</h:panelGroup>
我不知道你到底在指什么。更新按钮是什么意思?
对于我来说,以下代码在PrimeFaces 5.0中工作得很好:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:pm="http://primefaces.org/mobile">
<h:head>
</h:head>
<h:body>
<p:commandButton id="menuButton" value="Menu" icon="ui-icon-home"/>
<p:overlayPanel for="menuButton" widgetVar="menuPanel" at="left" showEffect="push">
<!-- overlayPanel content goes here -->
</p:overlayPanel>
</h:body>
</html>
这对你的问题有帮助吗?