Tôi có một trang facelet JSF như thế này (phiên bản cực kỳ đơn giản):Primefaces p: thoại không phải lúc nào xuất hiện nếu update = "dlg" trong 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>
Nó hoạt động tốt, cho đến khi tôi đặt một dynamyc header trong hộp thoại:
<p:dialog ... header="#{myBean.header}" ... >
tại thời điểm đó tôi phải thay đổi update
thuộc tính trong p:commandButton
:
update="@form :dlgEdit"
Nhưng trong trường hợp này hộp thoại sẽ chỉ hiển thị ở lần nhấp đầu tiên trên nút. Nó sẽ không hiển thị lần thứ hai, sau đó lại hiển thị ...
Tại sao? Làm cách nào để hộp thoại hiển thị luôn?
Cảm ơn bạn
Phiên bản nào của PF này là gì? thử đặt 'appendToBody =" true "' trên hộp thoại của bạn. Cũng quan sát sự khác biệt trong trạng thái của DOM khi hộp thoại hiển thị Vs khi nó không – kolossus
Cũng lưu ý điều kiện mà hộp thoại xuất hiện: OnSuccess. Điều gì chặn thành công đó? – kolossus
Tôi sử dụng PrimeFaces 3.5. 'appendToBody' không có hiệu lực. Cả hai 'oncomplete' và' onsuccess' đều được gọi (tôi đã thử với JS 'alert()'). Làm thế nào tôi có thể quan sát trạng thái của DOM? (xin lỗi vì sự thiếu hiểu biết của tôi ;-)) – yankee