Domyślnie pierwsza zakładka panelu akordeonowego przedstawia się jako otwarta przy ładowaniu strony. Czy istnieje sposób, że można go zamknąć po załadowaniu strony.Ukrywanie pierwszej zakładki panelu akordeonowego w JSF Primefaces
Dzięki
Domyślnie pierwsza zakładka panelu akordeonowego przedstawia się jako otwarta przy ładowaniu strony. Czy istnieje sposób, że można go zamknąć po załadowaniu strony.Ukrywanie pierwszej zakładki panelu akordeonowego w JSF Primefaces
Dzięki
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)">
można po prostu do
<p:accordionPanel activeIndex="-1">
Nie działa (any?) Więcej. –
Rozwija drugą kartę –
Działa dla mnie, z PF 5.0. Nie rozwija drugiej karty. – Chris
Działa, jeśli dla opcji activeIndex ustawiono wartość pustą (Primefaces 3.4.1).
<p:accordionPanel activeIndex="">
Ż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" ... >
Można to zrobić za pomocą funkcji PF, jak poniższy kod:
PF('accordionWidgetVarName').unselect(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).
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. –
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
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. –