Den Wert für eine Popup LOV dynamisch setzen in Oracle APEX

Dynamic Actions sind in Oracle APEX eine wundervolle Sache und man kann sie sehr einfach und deklarativ verwenden. Um den Wert in einer Popup LOV dynamisch zu ändern, ist es allerdings Ausnahmsweise einfacher den Link mit dem Javascript-Befehl selbst zu rendern.
Die Schwierigkeit bei einer Popup LOV besteht darin, dass Oracle Apex hierfür ein „HIDDEN“-Item für den Return-Wert und ein sichtbares Item für den Anzeige-Wert der Popup LOV rendered. Um den Return-Wert per Javascript zu setzen können wir einfach die $s-Funktion der Oracle Apex Javascript-API verwenden, die automatisch den richtigen Syntax für das Hidden-Item benutzt. Um den Anzeige-Wert zu ändern, können wir dann einfach der Jquery-Funktion verwenden.
Das folgende Beispiel rendered den Link als einfaches Display-Item und kommt ohne weitere Pageitems, Dynamic Actions oder anderen APEX-Komponenten aus. Du kannst es also einfach auf weitere Seiten in deiner Oracle APEX Application kopieren und anpassen.

1. Popup LOV

  • Create New Page-Item:
  • Identification > Name: P2_LOV
  • Identification > Type: Popup LOV
  • List Of Values > Type: SQL-Query
  • List Of Values > SQL Query:
    select STATE_NAME as display_value , st as return_value
    from demo_states

 

2. Link, um den Wert der Popup LOV zu setzen

  • Create New Page-Item:
  • Identification > Type: Display Only
  • Label > Label: (empty)
  • Source > Type: SQL Query
  • Source > SQL Query:
select '<a href="#" onclick=''javascript:$s("P2_LOV", "'
        ||st||'"); $("#P2_LOV").val("'
        ||state_name||'"); ''> Select '||state_name||' </a>'
from demo_states
where rownum=1
  • Security > Escape special character: No

Hier ist meine Demo-Seite zu dem Beispiel:

https://apex.oracle.com/pls/apex/f?p=DEMO_JENS_MARRE:POP_LOV_SET_VALUE

(Login über: demo/demo)

 

Eine Antwort auf „Den Wert für eine Popup LOV dynamisch setzen in Oracle APEX“

  1. Pingback: Set the value of a popup lov dynamically in Oracle APEX | Notes by Jens Marre

Schreibe einen Kommentar