Pierwszeństwo dynamicznej nakładkiPanel pokazuje tylko raz
Mam formularz z przyciskiem, który otwiera PrimafacesoverlayPanel
. W panelu znajduje się inny przycisk, który wykonuje akcję Ajax, a następnie zamyka nakładkę.
Oto uproszczona wersja bez akcji Ajax:
<h:form>
<p:commandButton id="button1" value="Open overlay" type="button"/>
<p:overlayPanel for="button1" widgetVar="ovl" dynamic="true">
<p:commandButton value="Close" oncomplete="ovl.hide();"
update="@form"/>
</p:overlayPanel>
</h:form>
Pamiętaj, że panel musi miećdynamic="true"
ponieważ zawartość dynamiczna musi być pobierana w prawdziwej aplikacji, iupdate="@form"
jest potrzebny do aktualizacji innych komponentów formularza.
Problem polega na tym, że jeśli mam oba atrybuty,dynamic="true"
iupdate="@form"
nakładka pojawia się tylko za pierwszym razem. Po kliknięciu przycisku „Zamknij”, jeśli spróbuję ponownie kliknąć „Otwórz nakładkę”, panel nie pojawi się.
Co ja robię źle?
(Korzystanie z PrimeFaces 3.5 i GlassFish 3.1.2.2)