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>

Это поможет вам с вашей проблемой?

Другие вопросы по тегам