从更改选择列表中的动态操作调用模式窗口

时间:2019-06-09 14:44:38

标签: oracle-apex oracle-apex-5.1

环境:Oracle APEX v5.1.2 / Oracle 12c R2

我有一个Interactive Grid报表,其中我的一列(活动)是基于LOV的选择列表列,其值为'Y'或'N'。

当选择列表的值为'Y'时,我试图从动态动作中调用模式窗口。我已经尝试了以下代码:

在“活动”列上,我有一个DA,它具有一个when事件更改和一个客户端条件,即item / column = value(ACTIVE = Y)

然后我有一个TRUE条件:执行PL / SQL

DECLARE  
    l_url varchar2(2000);  
    l_app number := v('APP_ID');  
    l_session number := v('APP_SESSION');  
BEGIN  
    l_url := APEX_UTIL.PREPARE_URL(  
        p_url => 'f?p=' || l_app || ':22:'||l_session||'::NO:22::',  
        p_triggering_element => '$("#is-active")'  
        );  
END;  

is-active是我在IG中针对ACTIVE列的静态ID。不幸的是,我在第22页上的模式表格没有启动/显示。

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方案,您需要创建一个隐藏页面项目(例如,P2_URL)并将默认值类型设置为PLSQL Expression,然后在plsql表达式中编写以下plsql:

apex_util.prepare_url('f?p=&APP_ID.:4:&SESSION.::&DEBUG.::::', p_triggering_element => '$(''#is-active'')')

然后在动态操作中而不是执行plsql,而必须执行以下javascript代码:

eval($('#P2_URL').val())

有关更多详细信息,请阅读此articel

相关问题