2016-07-12 26 views
2

Innerhalb eines rich:dataTable ich einen Spaltenkopf mit der folgenden Eingabe haben, die ein Filter:Richfaces 3 & AJAX Anfrage - Bean aktualisiert, aber nicht die Seite, wenn nicht erste Ajax-Anfrage

<h:inputText id="filter" value="#{action.filter}"> 
    <a4j:support event="onkeyup" requestDelay="1000" ignoreDupResponses="true" 
       reRender="dataTable, filter" 
       focus="filter" oncomplete="setCaretToEnd(event);" /> 
</h:inputText> 

Meine Seite enthält einige andere Komponenten mit Ajax. Alles ist in einem h:form und gibt es keineaj4:region (wenn es relevant ist zu bemerken).

Wenn die Seite geladen wird, wenn der erste AJAX-Anforderung die ein von dem Filtereingang gesendet wird, funktioniert es gut und meine Tabelle korrekt aktualisiert wird. Dennoch, sobald eine andere AJAX-Request, bevor gesendet wird, wird die Bohne noch richtig mit den neuen Werten aktualisiert, die meinen Tisch bevölkern sollten, aber es ändert sich nichts in meiner Seite, als ob das reRender Attribut nicht funktioniert.

Dieses Problem gilt nur für diesen speziellen Eingang und AJAX-Request. Alle anderen Komponenten funktionieren in jedem Moment gut.

Ich bin ziemlich neu in JSF und Richfaces. Vielleicht hängt es mit Warteschlangen zusammen?

Antwort

0

löste ich das Problem.

<a4j:outputPanel ajaxRendered="true"> 

Die RichFaces documentation sagt:

Eine Komponente mit ajaxRendered = „true“ mit jeder Anfrage Ajax gemacht wieder werden, auch wenn sie nicht ich meine mangelhafte Komponente innerhalb der folgenden Platte nur verschachtelt referenziert durch das render-Attribut der anfordernden Komponente. Dies kann nützlich sein, um eine Statusanzeige oder eine Fehlermeldung zu aktualisieren, ohne sie explizit anzufordern.

Also denke ich, dass es einfach so ist, als ob ich das reRender-Attribut meiner verschachtelten Komponente zwingen würde, egal was passiert. Seltsam.