Skip to Main Content

APEX

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Popup Menu in Classic Report

AnnelizeFMay 6 2026 — edited May 6 2026

Oracle APEX 24.2.16 in the cloud

I need a popup menu in a Classic Report where each menu item passes a column value (DEPTNO) from the selected row to the target page.

This is demonstrated in my application (AF_PLAYS | demo | de30_123) on p21: Popup Menu in Classic Report

I have implemented the following on p21

  • Popup Menu: List region referencing "Popup Menu" (template of "Menu Popup")
    Static Id: popup_menu

  • Classic report: with column dept; department_menu (HTML expression below)

    
    <button type="button"
       class="js-menuButton t-Button t-Button--icon t-Button--noUI"
       data-deptno="#DEPTNO#"
       data-menu="popup_menu_menu">
       <span class="fa fa-bars"></span>
    </button>
    
  • Dynamic Action (Javascript)

    Sets the page item when clicking the button:

    var btn$ = $(this.triggeringElement);
    apex.item("P21_DEPTNO").setValue(btn$.data("deptno"));
    
  • List "Popup Menu"
    This is just a simple list calling two example pages at the moment. Each target page has item PX_DEPTNO for testing

This doesn't work. The button correctly sets P21_DEPTNO, but the value is not passed to the target page when a menu item is selected.

I understand the reasons why as fac586 explains in this forum post. I have previously implented John Snyder's solution for a ‘Custom Menu’ (see P23 ‘Classic Report with Smart Filter’ of the same application).

This works well for a smaller report, however I have a lot of complex data and using apex_page.get_url for multiple menu items signficantly increases page load time

Other things I have tried:

  • Setting an application item i.e. SESSION_DEPTNO, but I don't think you can set an application item from without js as it's client side?
  • AJAX callback with JavaScript to set an application item. It works to set the value, but because it's asynchronous, the setting of the ID has not happened by the time my menu page is opened.

Is there a way to use a standard Popup Menu (List) and still pass the selected row value to the target page efficiently, without generating URLs for each row?

Thank you,

Annelize

Comments
Post Details
Added on May 6 2026
1 comment
225 views