Primefaces 5 overlayPanel сломан после обновления
Сегодня я обнаружил новую ошибку в P5. Когда я обновляю кнопку, на которую ссылается оверлейная панель, она больше не работает - оверлейная панель больше не отображается.
В качестве обходного пути я использую PF('widgetVar').loadContents();
но это чувствует себя очень неудобно.
В PF4 это работало без каких-либо обходных путей.
У кого-нибудь есть какое-то решение?
1 ответ
Мое решение:
- не обновляйте одну кнопку, которая открывает оверлей, обновляйте оба
- также добавьте 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>
Это поможет вам с вашей проблемой?