如何在更新邮件后停止<p:poll interval='3' update='messages'/>
标记,然后在关闭邮件时重新启动它?
基本上,我有这段代码:
<pe:layoutPane id="south" position="south" size="70">
<p:messages id="messages" autoUpdate="true" >
<script>
jQuery('#messages').effect("pulsate", {times:5}, 1000 );
jQuery('#messages').show();
</script>
</p:messages>
<h:form id="pollF">
<p:poll interval="10" listener="#{alarmsBean.checkAlarms()}" update=":messages" partialSubmit="true" widgetVar="poll"/>
</h:form>
</pe:layoutPane>
看起来Primefaces能够调用poll.stop()和poll.start(),但问题是它们通过按钮上的onclick事件展示了该功能。
我的问题是我这里没有按钮而且不想要它们。我希望poll.stop()在messages标记更新一次时被调用。我希望在关闭messages标签时调用poll.start()。
答案 0 :(得分:0)
包含外部面板并通过民意调查更新。然后在小组中让您的条件停止投票。不确定这有多高效但是有效。
<p:panel id="topPanel" style="border-color: white" >
<script>
function stopMe(){
new window().refresh();
//poll.stop(); // I just refresh the window that stops the poll as I expereinced issue with pool.stop() while using dynamically
}
</script>
<c:if test="${bean.var}"> //set a boolean after setting your message in your bean
<script> stopMe() </script>
</c:if>
<p:poll interval="10" widgetVar="poll" autoStart="true" update=":topPanel, :messages" />
</p:panel>