2012-04-07 14 views

Odpowiedz

27

Atrybut rendered jest po stronie serwera, a atrybut visible jest po stronie klienta. Atrybut rendered informuje, czy JSF powinien generować reprezentację HTML okna dialogowego, czy nie. Atrybut visible informuje, czy HTML/CSS/JS powinien natychmiast wyświetlać okno dialogowe na stronie przeglądarki, czy też nie.

Jeśli okno dialogowe nie zostanie wyrenderowane, nie będzie możliwe wyświetlenie go, na przykład, JavaScript dialogWidgetVar.show() bez ponownego ładowania strony lub ajax-aktualizowania jednego z komponentów macierzystych okna dialogowego w ten sposób, aby wartość warunku okna dialogowego wynosiła rendered do true. Również atrybut visible nie będzie miał żadnego efektu, jeśli okno dialogowe nie zostanie wyrenderowane po prostu dlatego, że nic nie jest renderowane do wynikowego kodu HTML, który może być pokazywany/ukrywany przez JavaScript.

Jeśli okno dialogowe jest renderowane, to jest domyślnie ukryte. Można ustawić wartość visible na true, aby wymusić natychmiastowe wyświetlenie okna dialogowego za każdym razem, gdy strona zostanie otwarta. Możesz też wywołać JavaScript dialogWidgetVar.show() w jakimś atrybucie onclick lub oncomplete, aby go wyświetlić.

Użyj atrybutu rendered, jeśli nie chcesz w ogóle wyrenderować okna dialogowego, na przykład dlatego, że i tak nie byłby nigdy użyty w aktualnie żądanym składzie strony.

+0

Myślałem o tych funkcjach, ale nie mogłem tego zrozumieć. Dziękuję za to; teraz ma sens. –

+0

Dzięki za miłe wyjaśnienie, bardzo pomocne! – Nikhil

+0

@Nikhil: Nie ma za co. – BalusC

2

Według documentation dla tych atrybutów, rozdział 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: Po włączeniu, okno dialogowe jest domyślnie widoczne [domyślna wartość: FALSE]' To jest mylące o.O Więc jest domyślnie wyłączone, domyślnie nie jest widoczne? –

+0

@Shredder zgodził się, ale wynika to bezpośrednio z dokumentacji: S –

Powiązane problemy