Tôi đang sử dụng PrimeFaces 3.2 trong dự án của mình. Tôi muốn biết sự khác biệt giữa thiết lập render thuộc tính của một <p:dialog>
như chống lại việc thiết lập có thể nhìn thấy thuộc tính là gì. Khi nào tôi nên sử dụng một trong các thuộc tính này?Sự khác biệt giữa các thuộc tính được hiển thị và hiển thị của <p:dialog>
Trả lời
Thuộc tính rendered
là server-side và thuộc tính visible
là client-side. Thuộc tính rendered
cho biết JSF có nên tạo biểu diễn HTML của hộp thoại hay không. Thuộc tính visible
cho biết HTML/CSS/JS có ngay lập tức hiển thị hộp thoại trên tải trang của trình duyệt hay không.
Nếu hộp thoại không được hiển thị, bạn sẽ không thể hiển thị hộp thoại đó bằng JavaScript dialogWidgetVar.show()
mà không tải lại trang hoặc cập nhật ajax một trong các thành phần của hộp thoại theo cách đó để đánh giá điều kiện rendered
của hộp thoại đến true
. Ngoài ra, thuộc tính visible
sẽ không có bất kỳ hiệu ứng nào nếu hộp thoại không được hiển thị đơn giản vì không có gì được hiển thị cho kết quả đầu ra HTML có thể được hiển thị/ẩn bởi JavaScript.
Nếu hộp thoại được hiển thị, khi đó hộp thoại được ẩn theo mặc định. Bạn có thể đặt visible
thành true
để buộc hộp thoại hiển thị hộp thoại ngay lập tức bất cứ khi nào trang được mở. Hoặc bạn có thể gọi JavaScript dialogWidgetVar.show()
ở một số thuộc tính onclick
hoặc oncomplete
để hiển thị nó.
Sử dụng thuộc tính rendered
nếu bạn không muốn hoàn trả hộp thoại, ví dụ: vì nó chưa bao giờ được sử dụng trong bố cục trang hiện được yêu cầu.
Theo documentation cho những thuộc tính, phần 3,28:
rendered: Boolean value to specify the rendering of the component, when set to
false component will not be rendered [default value: TRUE]
visible: When enabled, dialog is visible by default [default value: FALSE]
'hiển thị: Khi được bật, hộp thoại hiển thị theo mặc định [giá trị mặc định: FALSE]' Điều đó gây nhầm lẫn o.O Vì vậy, nó bị tắt theo mặc định, không hiển thị theo mặc định? –
@Shredder đồng ý, nhưng đó là trực tiếp từ tài liệu de: S –
Tôi đã suy nghĩ theo những dòng chức năng, nhưng không thể làm cho tinh thần ra khỏi nó. Cảm ơn vì điều đó; nó có ý nghĩa bây giờ. –
Cảm ơn lời giải thích tốt đẹp, rất hữu ích! – Nikhil
@Nikhil: bạn được chào đón. – BalusC