0

I am using JDeveloper 11.1.2.3.0 I have created a task flow (with jsf pages not jsff) which I call on button click. I have chosen to display it as Inline Popup and everything works fine. It is just that it does not act like a real af:popup. When I press "esc" button the popup does not get closed. Does anyone know how to do this? Thank you

ps: I understand af:popup and displaying a task flow as inline popup are different, but I would like to make my popup to exit on "esc" at least. Or if there is any possibility to achieve what the real af:popup offers it would be great :)

4

3 に答える 3

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>
于 2013-09-08T19:26:58.960 に答える
1

あなたの唯一の選択肢はJSになると思います。しかし、私が読んだことから、ESCボタンはデフォルトでキャンセル「機能」を呼び出す必要があります...これを読むことをお勧めします: http://www.oracle.com/technetwork/developer-tools/adf/learnmore/77 -ok-cancel-support-in-dialog-351871.pdf

于 2013-09-06T08:45:48.287 に答える
0

解決策を見つけるのに役立った@Gawishに感謝します。ADF 11g の clientListener に type:"keyPress" がないため、そのソリューションを使用できませんでした。しかし、私はこれが好きで、非常にうまく機能します:

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

注意してください、最後の e.cancel() は必須です!

于 2013-09-09T07:14:25.827 に答える