2012-04-07 31 views

Trả lời

27

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.

+0

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ờ. –

+0

Cảm ơn lời giải thích tốt đẹp, rất hữu ích! – Nikhil

+0

@Nikhil: bạn được chào đón. – BalusC

2

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] 
+1

'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? –

+0

@Shredder đồng ý, nhưng đó là trực tiếp từ tài liệu de: S –

Các vấn đề liên quan