Я хочу автоматически обновлять datatable (на клиенте), когда пользователь не работает. Я использую Primefaces 3.5 со стеклянными фишками, и моя идея была следующая:. Прайсы, периодическое обновление при простоя
У меня есть boolean autoUpdate
переменная в bean. И пользователь может включить/выключить автоматическое обновление.
Я создал два компонента: p:poll
и p:idleMonitor
.
idleMonitor
имеет два события, которые вызывают обновление
<p:ajax event="idle" oncomplete="myPoll.start();" />
<p:ajax event="active" oncomplete="myPoll.stop();" />
Эта часть в порядке. Проблема в том, как отключить idleMonitor
, когда autoUpdate
установлен в False
? Когда я
<h:panelGroup id="updatePanel" rendered="#{cc.attrs.bean.autoUpdate}">
....
</h:panelGroup>
это работает только если я начну с autoUpdate = false
и я могу переключить режим только один раз. Как только он отображается, он не может быть изменен. Я также пробовал
<p:ajax event="idle" oncomplete="#{cc.attrs.bean.autoUpdate ? 'myPoll.start();' : ''}" />
но это не сработало ни один. #{cc.attrs.bean.autoUpdate}
не изменяется. Даже я вызываю upadte на нем, и я вижу переменную, измененную в другом месте.
Итак, мой вопрос: есть ли способ отключить idleMonitor после его рендеринга? Или что является лучшим решением для факультативного периодического обновления для пользователя idle?
Значит, вам нужен монитор на холостом ходу, но только один раз? Вы не хотите, чтобы этот параметр, когда второй пользователь простаивает? –
Нет, я хочу, чтобы Idle контролировал каждый раз, когда пользователь простаивает. Но только если у него есть 'autoUpdate', устанавливается' True'. Это означает, что он может переключаться между «True» и «False» во время сеанса без перезагрузки страницы. – tvazac
Хм, вы пробовали p: outputPanel вместо h: panelGroup? Первая гармония лучше - мое субъективное восприятие. –