按下esc键需要阻止弹出窗口关闭

时间:2015-05-11 15:11:17

标签: java oracle-adf jdeveloper

我有一个弹出窗口,我有selectonechoice下拉。 单击下拉列表并按下退出键时,整个弹出窗口将在ADF中关闭。 我的要求是如果选择了selectonechoice,则在按下esc键时阻止关闭弹出窗口。

我一直试图通过使用下面的代码来关闭正常的弹出窗口

window.onkeydown = function(event){
    if(event.keyCode == 27){
        event.cancel();  
    }
}

我也尝试过覆盖clientlisteners的选项 popupClosed和popupCanceled也无济于事。

有关如何解释esc键功能并防止ADF弹出窗口关闭的任何帮助。

1 个答案:

答案 0 :(得分:0)

每个ADF Faces组件类都有一个等效的javascript。对于弹出窗口,RichPopup类在javascript中反映为ADFRichPopup。

你可以通过在javascript对象ADFRichPopup中压制cancel的方法来实现这一点:

<af:resource type="javascript">
  function onPopupOpened(event)   {  
              var popup = event.getSource();
              popup.cancel = function() {}; 
  } 
</af:resource>



<af:popup>
 <af:clientListener method="onPopupOpened" type="popupOpened"/>
</af:popup>

当然,这意味着您将无法自己使用cancel()方法,但您可以使用hide()方法。