p:民意调查已停止,但仍然会触发网络电话

问题描述 投票:1回答:1

我必须停止并使用某些条件在JSF中启动p:poll ...我能够通过将poll放在panelgrid中并使panelGrid呈现来实现...我认为它的工作因为pollOperationStatus在我制作之后没有被调用panelGrid呈现为false ...当我显示它时,它也会重新启动..但是仍有一个网络调用正在触发;它弄乱了许多东西;如何处理它?

 <h:form>
    My main form
    </h:form>

        <h:form id="mypollform">

            <p:outputLabel id="currentTime" value="#{myBean.counter}" />
            <h:outputText value="#{myBean.startPoll}" id="counter11" />

            <p:panelGrid rendered="#{myBean.startPoll}">
                <p:poll interval="8" widgetVar="poller" autoStart="true"
                    listener="#{myBean.pollOperationStatus}"
                    update=":#{p:component('newServerID')},:#{p:component('mypollform')}" />
            </p:panelGrid>
        </h:form>
jsf primefaces backing-beans
1个回答
2
投票

Primefaces 7 Documentation says

可以使用客户端api启动和停止轮询;或者将布尔变量绑定到stop属性,并在任意时间将其设置为false。

在你的情况下,这将在javaScript

PF('poller').stop();PF('poller').start();

或者将boolean bean属性绑定到stopp:poll属性:

<p:poll stop="#{myBean.stopPoller}" interval="8" widgetVar="poller" autoStart="true"
                    listener="#{myBean.pollOperationStatus}"
                    update=":#{p:component('newServerID')} :#{p:component('mypollform')}" />

还要注意update中的组件ID属性are separated by space, not comma.

© www.soinside.com 2019 - 2024. All rights reserved.