You can extend the basic functionality of APEX
menus by adding a JavaScript to allow the menus to "open" and
cascade into lower-level menus:
The JavaScript remembers the relative position
within the menu and performs super-fast screen refresh capabilities
to APEX, removing the need for an expensive screen refresh.

Upon selection, the menu item is also
highlighted, providing are pleasant and accurate end-user
experience:

SEE
CODE DEPOT FOR FULL SCRIPTS
MList – Multi-Level Navigation List
The Multi-Level
Navigation List (MList) provides a way to have an HTML list display
multiple levels similar to a tree list. The difference is only the
lowest level node will provide navigation to another page. The
image to the right shows the MList can support multiple levels of
drill-down.
Functional Design
The DDL to create
the table holding the definition of the MList is shown here. The
PL/SQL will be at the end of the document.
CREATE
TABLE
multi_level_list(
list
VARCHAR(30),
sequence
INTEGER,
parent_sequence
INTEGER,
list_entry_label
VARCHAR(50),
target_page_id
INTEGER,
set_these_items
VARCHAR2(100),
with_these_values
VARCHAR2(100)
)
/
ALTER
TABLE
multi_level_list
ADD
CONSTRAINT
pkmulti_level_list
PRIMARY
KEY
(list,
sequence)
USING
INDEX
/
SEE
CODE DEPOT FOR FULL SCRIPTS
LIST – Each list,
such as the one shown in the image above, must have a name. The
list above has a name of ‘STAFF’.
SEQUENCE – This is
the unique identifier of each item in the LIST.
PARENT_SEQUENCE –
When there is a child list item, such as ‘New Staff’, this will
contain the value of the SEQUENCE which this item should be
displayed below. If the record is for a top level item this value
will be NULL.
LIST_ENTRY_LABEL –
The value to be displayed in the list, such as ‘New Staff’.
TARGET_PAGE_ID –
What page to navigate to when the list item is clicked.
SET_THESE_ITEMS* –
This is a page item on the page you are navigating to (identified by
TARGET_PAGE_ID) for which to set a value.
WITH_THESE_VALUES*
– This is the value you want to set the page item to (identified by
SET_THESE_ITEMS)
* For now you can only set one item using
the SET_THESE_ITEMS and WITH_THESE_VALUES columns. If necessary we
can change this in the future.
For more information on this topic, see the
book "Easy Oracle HTML-DB Application Express
", the best book anywhere on expert APEX
development:
 |
Easy Oracle HTML-DB Application Express
By Michael Cunningham & Kent Crotty
Only $27.95
Buy it now and get the code depot download
|