У меня есть JSF страницы facelet, как это (очень упрощенный вариант):Primefaces р: диалог не всегда появляется, если обновление = «DLG» в 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>
Он отлично работает, пока я не положил dynamyc Заголовок в диалоге:
<p:dialog ... header="#{myBean.header}" ... >
в какой момент я должен изменить атрибут update
в p:commandButton
:
update="@form :dlgEdit"
Но в этом случае диалог будет отображаться только при первом нажатии кнопки. Он не появится во второй раз, а затем снова появится ...
Почему? Как я могу открыть диалог всегда?
Спасибо
Какая версия PF это? попробуйте установить 'appendToBody =" true "' в вашем диалоговом окне. Также обратите внимание на разницу в состоянии DOM, когда в диалоговом окне отображается Vs, когда он не – kolossus
Также обратите внимание на условие, при котором появляется диалоговое окно: OnSuccess. Что блокирует этот успех? – kolossus
Я использую PrimeFaces 3.5. 'appendToBody' не влияет. Вызывается как 'oncomplete', так и' onsuccess' (я пытался с JS 'alert()'). Как я могу наблюдать за состоянием DOM? (извините за мое незнание ;-)) – yankee