Как вызвать update для компонента, только когда опрос завершен в Primefaces.С точки зрения - PullRequest
1 голос
/ 29 мая 2019

Обновление = "" вызывается на каждом интервале. Есть ли способ вызвать обновление только при остановленном опросе и только один раз?

Пример: Как мне обновить кнопку-фрагмент только один раз, когда опрос остановится?

<p:poll interval="2" update="@(.button-fragment)" stop="#{stopMethod()}">

Редактировать: Я хотел бы сделать это из вида

1 Ответ

3 голосов
/ 29 мая 2019

Помимо того, что ваш опрос никогда не останавливается, я бы сделал что-то похожее на

<p:poll interval="2" stop="isPollStopped()" listener="updateOnPollStop()">

и в виде bean

public boolean isPollStopped() {
    return ...;
}

public void updateOnPollStop() {
    final boolean pollStopped = this.isPollStopped();

    if (pollStopped) {
        RequestContext.getCurrentInstance().update("@(.button-fragment)");
    }
}

Edit:

Полностью не проверено, но, возможно, это может сработать:

<p:poll interval="2" oncomplete="handlePollComplete(xhr, status, args)" stop="#{stopMethod()}">

function handlePollComplete(xhr, status, args) {
    if (!PF(<YOUR_POLL_ID>).active) {
        PF(<YOUR_UPDATEE_ID>).update()
    }
}

Редактировать 2 (используя remoteCommand)

<p:remoteCommand name="updateOnPollStop" update="@(.button-fragment)"/>
<p:poll widgetVar="myPoll" interval="2" oncomplete="handlePollComplete(xhr, status, args)" stop="#{stopMethod()}">

function handlePollComplete(xhr, status, args) {
    if (!PF('myPoll').active) {
        updateOnPollStop()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...