2014-06-29 12 views
7

Mam polecenie PrimFaces, które wywołuje filtr danych w jego jednostce onComplete. DataTable odwołuje się widgetVar:Sprawdź, czy istnieje widget widgetu PrimeFaces

<p:commandButton id="addFishBtn" 
        title="Add Fish" 
        update="fishForm:FishTbl" 
        action="#{backingBean.addFish()}" 
        oncomplete="fishTable.filter()"/> 

Problem polega na tym, że fishTable nie zawsze istnieje, gdy ten przycisk jest wciśnięty. To nie istnieje, aplikacja po prostu utknęła. Próbowałem czegoś takiego z innych pytań SO:

oncomplete="if(typeof(fishTable) != 'undefined') {fishTable.filter()}" 

Ale wydaje się, że nic nie robi. Czy istnieje właściwy sposób sprawdzenia, czy widgetVar ma obecnie jakąś wartość?
Dzięki!

Odpowiedz

13

Możesz użyć następujących

if(PrimeFaces.widgets['fishTable']) { 
    //widgetVar does exist 
    PF('fishTable').filter(); 
} 
+0

Czy ta praca z nowym PF ('widgetVar') notacja? –

+0

Tak, aktualizuję odpowiedź na to ogłoszenie, dziękuję. –

+0

dzięki! właśnie uratowałeś mój dzień: D ładne i czyste rozwiązanie – ProgrammingIsAwsome