Как условно отобразить диалог подтверждения PrimeFaces на основе значений обратного бина?

У меня есть условие "{messagesSearchBean.tooLong}". Как я могу создать кнопку, если, если это условие истинно, я хочу отобразить подтверждение, а когда ложно, действие будет выполнено немедленно. Когда условие истинно, отображается подтверждающий диалог, и я хочу, чтобы он функционировал нормально: если нажата Да, действие кнопки должно быть выполнено, если нет, вызов должен быть прерван. Это то, что у меня есть, но для того, чтобы это было правильно, требуется два клика.

    <h:panelGrid align="center" columns="2" id="bodyContent">
        <p:commandButton value="Start Search" action="#{notificationSearchBean.getAllNotificationsForQuery}" update="bodyContent" rendered="#{!notificationSearchBean.tooLong}"/>

        <p:commandButton value="Start Search" action="#{notificationSearchBean.getAllNotificationsForQuery}" update="bodyContent" rendered="#{notificationSearchBean.tooLong}"> 
            <p:confirm header="Please narrow your search" message="Number of records fetched is #{notification.size}. Would you like to continue?"/>
        </p:commandButton>
    </h:panelGrid>
    <p:confirmDialog global="true" showEffect="fade" hideEffect="fade" >
        <p:commandButton value="Yes" type="button"  styleClass="ui-confirmdialog-yes" icon="ui-icon-check"/>
        <p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close"/>
    </p:confirmDialog>

Это не работает как кнопка, отображаемая на основе того, что было изначально сохранено в bean-компоненте, но я хочу, чтобы это было новое значение из текущей отправки. Как я могу изменить это, чтобы он это сделал?

0 ответов

Другие вопросы по тегам