2016-07-12 2 views
2

Внутри rich:dataTable У меня есть один заголовок столбца со следующим входом, который является фильтром:RichFaces 3 и запрос AJAX - Bean обновлён, но не на страницу, если не первый запрос Ajax

<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> 

Моя страница содержит некоторые другие компоненты, с ajax. Все находится внутри h:form и нетaj4:region (если это необходимо для уведомления).

Когда страница загружена, если первый отправленный запрос AJAX является одним из входных данных фильтра, он отлично работает, и моя таблица правильно обновлена. Тем не менее, как только отправляется другой запрос AJAX, компонент по-прежнему корректно обновляется с новыми значениями, которые должны заполнять мою таблицу, но ничего не меняется на моей странице, как будто атрибут reRender не работает.

Эта проблема применима только к данному конкретному вводу и запросу AJAX. Все остальные компоненты работают в любой момент.

Я довольно новичок в JSF и RichFaces. Может быть, это связано с очередями?

ответ

0

Я решил проблему. Я просто вложен мой недостающий компонент в следующей панели:

<a4j:outputPanel ajaxRendered="true"> 

RichFaces documentation говорит:

Компонент с ajaxRendered = «истина» будет повторно вынесен при каждом запросе Ajax, даже если не на который ссылается атрибут рендеринга запрашивающего компонента. Это может быть полезно для обновления отображения состояния или сообщения об ошибке без явного запроса.

Так что, я думаю, это так, как если бы я заставлял атрибут reRender моего вложенного компонента работать независимо от того, что. Странно.

Смежные вопросы