如何在p:confirmDialog中设置defaultCommand

时间:2018-11-06 12:29:29

标签: primefaces

我使用JSF PrimeFaces 6.1版本

我有几个命令按钮的confirmDialog

        <p:commandButton id="applyButton" icon="icon-interaction-upload-3"
                         styleClass="icon-button edit-panel-apply main-button"
                         rendered="#{Bean.editMode}"
                         onclick="setMainButtonYes(); $('[id$=hiddenApplyButton]').click(); return false;"
                         title="Apply"/>
        <p:commandButton id="hiddenApplyButton"
                         actionListener="#{Bean.save}"
                         style="display: none"
                         onstart="saveScrollPosition();blockUi('blockUI')"
                         oncomplete="unblockUi('blockUI');setScrollPosition();">
            <p:confirm header="Blablabla"
                       message="Apply"
                       icon="ui-icon-alert"/>
        </p:commandButton>

        <p:commandButton id="discardButton" icon="icon-interaction-remove-2"
                         styleClass="icon-button edit-panel-discard" rendered="#{Bean.editMode}"
                         title="Discard"
                         onclick="setMainButtonNo(); $('[id$=hiddenDiscardButton]').click(); return false;"/>
        <p:commandButton id="hiddenDiscardButton"
                         actionListener="#{Bean.discardChanges}"

                         style="display: none"
                         onstart="saveScrollPosition();blockUi('blockUI')"
                         oncomplete="unblockUi('blockUI');setScrollPosition();">
            <p:confirm header="Blablabla"
                       message="Discard"
                       icon="ui-icon-alert"/>
        </p:commandButton> 

<p:confirmDialog id="confirmationDialog" global="true" closeOnEscape="true">
            <p:commandButton id="yes" value="Yes"
                             styleClass="ui-confirmdialog-yes edit-confim-yes yesButtonUpdate"
                             onstart="saveScrollPosition();" oncomplete="setScrollPosition();"
                             icon="ui-icon-check"/>
            <p:commandButton id="no" value="No"
                             styleClass="ui-confirmdialog-no edit-confim-no noButtonUpdate main-button"
                             onstart="saveScrollPosition();" oncomplete="setScrollPosition();"
                             icon="ui-icon-close"/>
        </p:confirmDialog>

在对话框打开时,对于“应用”按钮,按Enter键可以正确保存更改,但是在第二种情况下,对于放弃按钮,我希望输入按钮关闭对话框而不放弃更改。 我试图添加defaultCommand标记,但是它不起作用。在第二种情况下,如何设置Enter为“ no” commandButton?

P.S。 setMainButtonYes / No()函数只是将所需的类添加到按钮以进行绘制。

1 个答案:

答案 0 :(得分:0)

不是您所期望的解决方案,但是由于confirmDialog的局限性,唯一的选择可能是更改按钮的顺序,以使第一个按钮成为默认命令:

<p:confirmDialog id="confirmationDialog" global="true" closeOnEscape="true">
    <p:commandButton id="no" value="No" />
    <p:commandButton id="yes" value="Yes"/>
</p:confirmDialog>