2012-04-07 52 views

回答

27

rendered屬性是服務器端和visible屬性是客戶端。 rendered屬性指示JSF是否應該生成對話框的HTML表示。 visible屬性告訴HTML/CSS/JS是否應立即在瀏覽器的頁面加載中顯示對話框。

如果沒有呈現該對話框,那麼你將無法通過例子來顯示它的JavaScript dialogWidgetVar.show()無需重新加載頁面或Ajax的更新對話框的父組件的一個方式,使對話框的rendered條件計算到true。如果不顯示對話框,則visible屬性也不會產生任何影響,因爲沒有任何內容呈現給可能由JavaScript顯示/隱藏的HTML輸出結果。

如果對話框被渲染,那麼它默認是隱藏的。您可以將visible設置爲true以強制它在打開頁面時立即顯示對話框。或者,您可以在某些onclickoncomplete屬性中調用JavaScript dialogWidgetVar.show()來顯示它。

如果您根本不想渲染對話框,請使用rendered屬性,例如,因爲在當前請求的頁面組合中永遠不會使用它。

+0

我正在思考這些功能,但沒有意義。感謝那;它現在是有道理的。 – 2012-04-07 18:30:27

+0

感謝您的好解釋,非常有幫助! – Nikhil 2012-04-07 21:13:27

+0

@Nikhil:不客氣。 – BalusC 2012-04-07 21:18:47

2

按照documentation這些屬性,節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

'visible:啓用時,對話框默認是可見的[默認值:FALSE]'這令人困惑o.O所以它默認是禁用的,默認情況下它是不可見的? – 2012-04-07 00:45:34

+0

@Shredder同意了,但這是直接從文檔:S – 2012-04-07 01:49:16

相關問題