2012-04-17 15 views

Odpowiedz

8

Jednym ze sposobów jest zdefiniowanie widgetVar:

<p:accordionPanel widgetVar="accordion"> 
    ... 
</p:accordionPanel> 

, a następnie:

<body onload="PF('accordion').unselect(0)"> 

lub dla starszych wersji PF:

<body onload="accordion.unselect(0)"> 
+0

Dzięki .. Próbowałem pierwszego podejścia. To działa. Karta jest domyślnie zamknięta. Ale jest jeden problem. Nie jest ładowany po kliknięciu. Pozostałe karty zostaną zaktualizowane z db (za każdym razem, gdy klikniemy na niego). Ale pierwsza zakładka nie działa w ten sposób. Pozostaje pusty. Jakiś pomysł dlaczego tak się dzieje. Kontrolka przechodzi do komponentu bean na clikc i nawet wartość jest ładowana, ale nie jest odzwierciedlona w tabulatorze. –

+0

Masz rację ... Testowałem go z atrybutem 'dynamic =" true "'. Wtedy pierwsza karta nie zostanie załadowana, jeśli ją klikniesz. Dostosuję moją odpowiedź. Użyj podejścia z widgetemVar. To działa. – Sebi

+0

Nadal nie działa. Karta jest otwarta i nie zawiera danych. Zachowuję dynamic = "true". Również używam facels. Może to wpłynąć na wyniki. –

20

można po prostu do

<p:accordionPanel activeIndex="-1"> 
+0

Nie działa (any?) Więcej. –

+0

Rozwija drugą kartę –

+4

Działa dla mnie, z PF 5.0. Nie rozwija drugiej karty. – Chris

7

Działa, jeśli dla opcji activeIndex ustawiono wartość pustą (Primefaces 3.4.1).

<p:accordionPanel activeIndex=""> 
2

Żadna z zamieszczonych odpowiedzi nie sprawdziła się w PrimeFaces 3.5.x. stosując tryb, lecz w ten sposób:

<p:accordionPanel multiple="true" activeIndex="null" ... > 
1

Można to zrobić za pomocą funkcji PF, jak poniższy kod:

PF('accordionWidgetVarName').unselect(0); 
0

Odpowiadając na PrimeFaces 6,0 użytkowników:

Można ustawić widgetVar właściwość, a następnie wywołaj PF ("widgetVarValue"). unselect (0); jak wspomniał Fred Policarpo; jednak nie byłem w stanie uzyskać tego do pracy na akordeonie load i próbowałem różnych rzeczy, takich jak użycie zdarzenia onload div, przy użyciu remoteCommand z włączoną funkcją autoRun, a nawet przy użyciu niestandardowego jQuery. Żadna z nich nie działała dla zdarzenia ładowania, tylko wtedy, gdy uruchomiłem to PF odznaczenie wywołania w konsoli.

W PrimeFaces 6.0 można użyć atrybutu activeIndex i ustawić go na wiele wartości, np. "1,3,5", aby zamknąć wszystkie karty, ale otwórz 2, 4 i 6 karty (indeksowanie bazy 0).

Powiązane problemy