从更改 select 列表的动态操作调用模态 window

Call a modal window from a dynamic action on change select list

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

我有一个交互式网格报告,其中我的一列(活动)是基于 LOV 的 select 列表列,其值为 'Y' 或 'N' .

我试图做的是当 select 列表的值为 'Y' 时从动态操作中调用模式 window。我试过下面的代码:

在“活动”列中,我有一个 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 页上的模态形式没有 fire/appear。

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

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

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

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

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