Заставьте всплывающее окно с потоком задач закрываться на кнопке "esc"

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

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

3 ответа

Решение

Я благодарю @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() в конце обязательно!

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

<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>

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

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