2011-10-21 12 views
5

Mamy a4j:outputPanel, który jest ajaxRendered. Czy istnieje sposób wywołania funkcji javascript za każdym razem, gdy jest on (re) renderowany? Wiem, że moglibyśmy zadzwonić w każdym elemencie, który mógłby przesłać z oncomplete, ale to naprawdę nie jest praktycznie możliwe do utrzymania.Jak wywołać funkcję JavaScript w renderowaniu w JSF 1.2/Richfaces 3.3?

Szczegóły:

  • JSF 1.2
  • Richfaces 3,3

Przykład (onComplete rzeczywistości nie jest dostępny na metce outputPanel):

<a4j:outputPanel ajaxRendered="true" oncomplete="myJSFunc()"> 
    <h:outputText value="Test-aroo" /> 
</a4j:outputPanel> 
<!-- other inputs, buttons and stuff --> 

Aktualizacja Might biblioteka jQuery może pomóc (to jest wbudowane w RichFaces)? Czekam na użycie .live(), aby być może zarejestrować się w zdarzeniu oncomplete. Będę eksperymentować i aktualizować z postępem.

Aktualizacja Nie dostałem szansy na wdrożenie rozwiązania jQuery, ale jak moja odpowiedź pokazuje poniżej myJSFunc() można po prostu umieścić bezpośrednio w renderowanych znacznikach.

Odpowiedz

8

Rozwiązaniem jest umieszczenie JavaScript w tagu skrypt wewnątrz outputPanel:

<a4j:outputPanel ajaxRendered="true"> 
    <h:outputText value="Test-aroo” /> 
    <script type=”text/javascript”>myJSFunc();</script> 
</a4j:outputPanel> 
0

Będziesz musiał wywołać oncomplete na komponencie, który odpala żądanie Ajax. a4j: outputPanel nie ma atrybutu oncomplete.

+0

porządku, rozumiem, że outputPanel nie posiada atrybut onComplete. Na każdym z nich jest zdecydowanie za dużo elementów do zarządzania. Czekam na to wydarzenie na całym świecie. – Adam

Powiązane problemy