использовать a4j: очередь для синхронизации событий - PullRequest
1 голос
/ 20 апреля 2011

У меня есть введенный текст и кнопка на форме.
Я обрабатываю событие onchange для ввода текста и onclick для кнопки.
Если пользователь изменяет текст и затем нажимает кнопку 2 события срабатывает и иногда они обрабатываются одновременно.
Я бы хотел, чтобы onclick обрабатывался после завершения onchange.
Для этого я использую <a4j:queue name="myQueue"/> и отмечаю события <a4j:queue name="myQueue"/> следующим образом:

<a4j:queue name="myQueue"/>
    ...
<h:inputText id="dateFromText" value="#{flowScope.fileSearchCriteria.fromDateStr}">
          <a4j:support event="onchange" eventsQueue="myQueue" reRender="datePanel1" 
          actionListener="#{fileSearchCriteria.changeTextFromDate}"/>
</h:inputText>
    ....
<h:commandButton id="fileInSearch" action="fileInSearch"
        value="#{resourceBundle.searchIn}" type="submit">
        <a4j:support eventsQueue="myQueue" event="onclick"/>
</h:commandButton>
...

И в результате onclick обрабатывается не каждый раз после onchange.

1 Ответ

1 голос
/ 20 апреля 2011

У вас должно быть два события каждый раз, onchange и onclick. Но я бы рекомендовал переключиться на a4j: commadnButton вместо того, чтобы использовать h: commandButton с поддержкой a4j: внутри.

...