While browsing the Oracle APEX discussion forum, I came across a useful workaround shared by a user named blue.
His requirement was to activate a specific tab automatically when navigating from
different pages — based on the redirect source, button click, or custom navigation logic.
In this blog, we will walk through how to achieve this behavior. I hope it helps you in similar APEX use cases.
Step 1: Create the Tab Container
Create a tab container region and assign it a Static ID
Static ID: TAB_MAIN
Template: Tabs
Tab Style: Pill
Step 2: Create Sub Tabs
Inside the main tab container, create three tabs and assign Static IDs:
Tab Label Static ID
Emp EMP
Dept DEPT
Location LOCATIONS
Step 3: Create a Hidden Page Item
Create a hidden page item named: P16_ACTIVE_TAB
This item will receive a value (e.g., EMP, DEPT, or LOCT) when navigating from another page.
Based on this value, the corresponding tab will activate automatically on page load.
Pass_Value Tab_Activated
Emp Emp Tab
Dept Dept Tab
Loct Location Tab
Step 4: Add the JavaScript
Paste the following code into Function and Global Variable Declaration
setTimeout(function () {
var activeTab = ($v("P16_ACTIVE_TAB") || "").toUpperCase();
if (activeTab === 'EMP') {
apex.region("TAB_MAIN").widget().aTabs("getTabs")["#SR_EMP"].makeActive();
} else if (activeTab === 'DEPT') {
apex.region("TAB_MAIN").widget().aTabs("getTabs")["#SR_DEPT"].makeActive();
} else if (activeTab === 'LOCT') {
apex.region("TAB_MAIN").widget().aTabs("getTabs")["#SR_LOCATIONS"].makeActive();
}
}, 500);
P16_ACTIVE_TAB - Hidden item used to pass the tab identifier
TAB_MAIN - Static ID of main tab container
SR_EMP, SR_DEPT, SR_LOCATIONS - Tab Static IDs with "SR_" prefix as required by APEX tab structure
With this setup, the correct tab will automatically activate based on the value passed into P16_ACTIVE_TAB, making navigation smoother and more intuitive for users.
Comments
Post a Comment