2013-09-06 1 views
0

Я использую JDeveloper 11.1.2.3.0 Я создал поток задач (с jsf-страницами не jsff), которые я вызываю при нажатии кнопки. Я решил отобразить его как Inline Popup, и все работает нормально. Просто он не действует как настоящий af: popup. Когда я нажимаю кнопку «esc», всплывающее окно не закрывается. Кто-нибудь знает как это сделать? СпасибоСделать задачу Flow Inline Popup закрыть на кнопку «esc»

ps: Я понимаю af: всплывающее окно и отображение потока задач, поскольку встроенное всплывающее окно отличается, но я хотел бы сделать свое всплывающее окно для выхода на «esc» по крайней мере. Или, если есть какая-то возможность добиться того, что реальный af: всплывающее предложение, было бы здорово :)

ответ

0

Я благодарю @Gawish за ответ, поскольку он помог мне найти решение. Я не мог использовать это решение, потому что нет типа: «keyPress» в clientListener в ADF 11g. Однако я, как это, и она работает очень хорошо:

window.onkeyup = function (e) { 
      if (e.keyCode == 27) { 
       var button = AdfPage.PAGE.findComponentByAbsoluteId('cb1'); 
       AdfActionEvent.queue(button, true); 
       e.cancel(); 
      } 
     } 

Обратите внимание, e.cancel() в конце обязательна!

1

Я предполагаю, что ваш единственный вариант будет JS. Но от того, что я прочитал, кнопка ESC должен вызвать функцию отмены «» по умолчанию ... Я рекомендую вам прочитать: http://www.oracle.com/technetwork/developer-tools/adf/learnmore/77-ok-cancel-support-in-dialog-351871.pdf

+0

Благодарим за отзыв, кнопка ESC будет вызывать отмену по умолчанию по af: всплывающее окно, но не в этом случае. Чтобы закрыть поток задач, кнопка ESC фактически должна вызвать обратную операцию потока задач. Можете ли вы мне помочь? –

2

Я считаю, что вы могли бы сделать что-то вроде этого

<af:document title="Press ESC to Cancel" id="d1"> 
<af:commandButton text="Cancel Button" clientComponent="true" id="cb1" actionListener="#{someScope.someFunction}" action="actionToCallReturn" /> 
<af:clientListener method="onKeyPress" type="keyPress"/> 
<af:resource type="javascript"> 
    function onKeyPress(evt){ 
    var _keyCode = evt.getKeyCode(); 
    if (_keyCode == AdfKeyStroke.ESC_KEY){  
      var button = AdfPage.PAGE.findComponentByAbsoluteId('cb1'); 
      AdfActionEvent.queue(button,true); 
      evt.cancel(); 
    } 
} 
</af:resource> 
</af:document> 
Смежные вопросы