2013-08-06 43 views

Trả lời

1

tôi đã có thể để tái tạo trường hợp của bạn và bạn có thể làm như sau:

  • Hãy thoại closable="false" của bạn.
  • Thêm một nút Cancel sẽ ẩn hộp thoại.
  • Thêm thành phần resetInput từ Primefaces Tiện ích mở rộng bên trong nút Hủy. Thao tác này sẽ xóa các xác thực và giá trị của biểu mẫu.

Dưới đây là ví dụ giả định hộp thoại của bạn là widgetVar có tên wvDialog.

<p:commandButton value="Cancel" immediate="true" onclick="wvDialog.hide()"> 
     <pe:resetInput for="myDialogFormId /> 
    </p:commandButton> 

Bạn thậm chí có thể gọi phương thức đậu trong nút actionListener nếu cần.

Tôi hy vọng điều đó sẽ hữu ích.

+1

Cảm ơn câu trả lời tuyệt vời! Nút Tôi thực sự muốn có một nút đóng trên góc trên bên phải ...... – ethanjyx

+0

Tôi có một nút * Hủy * trên trang của tôi với 'oncomplete = 'PF (" wvDialog "). Hide();''. Nhưng vẫn còn khi tôi mở hộp thoại, nó hiển thị thông báo lỗi ở đó. –

0

Cập nhật p:dialog hoặc p:message mỗi khi bạn gửi Biểu mẫu.
Bạn có thể làm điều đó bằng cách sử dụng cập nhật thuộc tính của p:commandButton.

<p:commandButton update="ID_OF_DIALOG" /> 
7

Bạn nên sử dụng p:resetInput trên phần tử mà bạn phải mở hộp thoại.

Ví dụ, nếu bạn sử dụng một p:commandButton

<p:commandButton value="Open dialog" update=":dialogId" oncomplete="PF('dialogWidget').show()" > 
    <p:resetInput target=":dialogId" /> 
</p:commandButton> 

này sẽ thiết lập lại các giá trị được lưu trữ (bao gồm cả các thông điệp xác nhận) khi mở hộp thoại.