유휴 상태 일 때 클라이언트에서 datatable을 자동으로 업데이트하려고합니다. 나는 Primefaces 3.5를 글래스 피시와 함께 사용하고 있으며 내 아이디어는 다음과 같습니다.유휴 상태 일 때 주기적 업데이트
나는 콩에서 변수가 boolean autoUpdate
입니다. 그리고 사용자는 자동 업데이트를 켜거나 끌 수 있습니다.
두 구성 요소를 만들었습니다 : 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를 비활성화하는 방법이 있습니까? 유휴 사용자를위한 선택적 정기 업데이트를위한 더 나은 솔루션은 무엇입니까?
그래서 유휴 모니터를 원하지만 단 한번만 원하십니까? 사용자가 두 번째로 유휴 상태 일 때 해당 옵션을 원하지 않습니까? –
아니요, 사용자가 유휴 상태가 될 때마다 유휴 모니터를 원합니다. 하지만'autoUpdate'가'True'로 설정된 경우에만 가능합니다. 즉, 페이지를 다시로드하지 않고 세션 중에 'True'와 'False'사이를 전환 할 수 있습니다. – tvazac
흠, h : panelGroup 대신 p : outputPanel을 사용해 보셨습니까? 우선 하나의 하모니가 주관적인 인식입니다. –