Mam JSF stronę facelet tak (wersja niezwykle uproszczonej):Primefaces p: dialog nie zawsze pojawiają się, gdy zmiana = „DLG” w CommandButton
<h:form id="frmAnagPersonName">
<p:commandButton value="Edit" icon="ui-icon-gear"
update="@form :frmEdit"
onsuccess="_dlgEdit.show()"/>
...
<p:dataTable etc...
...
</h:form>
<p:dialog id="dlgEdit" widgetVar="_dlgEdit" dynamic="true" modal="true" closable="true"
header="Person Identity">
<h:form id="frmEdit" >
<p:panelGrid id="pnlEdit" columns="2">
<p:outputLabel id="lblName" for="eName" value="Name"/>
<p:inputText id="eName" value="#myBean.personName}"
</p:panelGrid>
</h:form>
</p:dialog>
To działa dobrze, dopóki nie szuka dynamyc nagłówka w oknie:
<p:dialog ... header="#{myBean.header}" ... >
w tym momencie muszę zmienić atrybut update
w p:commandButton
:
update="@form :dlgEdit"
Ale w takim przypadku okno dialogowe pojawi się tylko przy pierwszym kliknięciu przycisku. Nie pojawi się po raz drugi, a potem znowu się pojawi ...
Dlaczego? Jak mogę zawsze wyświetlać okno dialogowe?
Dziękuję
Jaka wersja PF to jest? spróbuj ustawić 'appendToBody =" true "' w twoim oknie dialogowym. Zwróć także uwagę na różnicę w stanie DOM, gdy okno dialogowe pokazuje Vs, gdy nie jest – kolossus
Zwróć również uwagę na stan, w którym pojawia się okno dialogowe: OnSuccess. Co blokuje ten sukces? – kolossus
Używam PrimeFaces 3.5. 'appendToBody'has brak efektu. Zarówno 'oncomplete' jak i' onsuccess' są wywoływane (próbowałem z JS 'alert()'). Jak mogę obserwować stan DOM? (przepraszam za moją ignorancję ;-)) – yankee