2017-10-23 17 views
0

ESC 키를 누르면 표시 대화 상자에서 확인 (확실합니까?)이 이벤트로 인해 p:commandButton이 트리거됩니다. 울부 짖는 코드 : 나는 즉시 내가 ESC 키 두 번째 대화 do you want close 쇼를 누를 때, 버튼 SAVE, 대화 do you want save? 쇼를 클릭닫기 대화 상자에 대해 Esc 키를 누를 때 확인 대화 상자가 표시됩니다

<p:dialog id="dlgEdit" closeOnEscape="false" closable="false" modal="true"> 
    ... 
    ... 
    ... 
    <p:commandButton process="@this" value="SAVE" widgetVar="btnSaveDialogEdit"> 
    <p:confirm ... 
       message="do you want save?"/> 
    </p:commandButton> 

    <p:commandButton process="@this" value="CLOSE" widgetVar="btnCloseDialogEdit"> 
    <p:confirm ... 
       message="do you want close?"/> 
    </p:commandButton> 

    <p:confirmDialog> 
    ...two commandbutton Yes/No 
    <p:confirmDialog> 

    <p:hotkey bind="esc" handler="PF('btnCloseDialogEdit').getJQ().click()" /> 
</p:dialog> 

. confirmdialog에서 closeOnEscape = "true"을 사용하도록 설정합니다. 대화 상자의 ESC 키를 누르면 do you want save? 대화 상자가 숨겨 지지만 그럴 수 없습니다. !!

답변

0

당신은 다음 stucture하여 해당를 얻을 수 있습니다

<p:dialog id="dlgEdit" widgetVar="dlgEdit" 
    closeOnEscape="true" closable="false" modal="true"> 
    ... 
    ... 
    ... 

    <p:confirmDialog message="Do you want to save?" widgetVar="confirmClose"> 
     <p:commandButton value="Yes" 
      oncomplete="PF('confirmClose').hide();PF('dlgEdit').hide();" /> 
     <p:commandButton value="No" type="button" 
      onclick="PF('confirmClose').hide();PF('dlgEdit').hide();" /> 
    </p:confirmDialog> 

    <p:hotkey bind="esc" handler="PF('confirmClose').show();" /> 
</p:dialog> 

하면 저장 메커니즘을 처리하기 위해 listener에 대한 Yes 버튼을 추가해야합니다.