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

Oracle apex 从更改选择列表上的动态操作调用模式窗口,oracle-apex,oracle-apex-5.1,Oracle Apex,Oracle Apex 5.1,环境:Oracle APEX v5.1.2/Oracle 12c R2 我有一个交互式网格报告,其中一列(活动)是基于LOV的选择列表列,其值为“Y”或“N” 当选择列表的值为“Y”时,我试图从动态操作中调用一个模式窗口。我尝试了以下代码: 在活动列上,我有一个DA,它有一个when更改事件和一个item/column=value(Active=Y)的客户端条件 然后我有一个真正的条件:执行PL/SQL DECLARE l_url varchar2(2000); l_ap

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

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

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

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

然后我有一个真正的条件:执行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是我的静态id,对应于我的IG中的活动列。不幸的是,我在第22页上的模式表单没有触发/显示。

我找到了一个解决方案,您需要创建一个隐藏的页面项,例如(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())

要了解更多详细信息,请阅读此

您是否尝试在DA中运行警报以查看DA是否触发?此外,我还没有使用PLSQL重定向,但发送它时是否需要apex_util.redirect_url尝试添加apex_util.redirect_url(l_url)还有,您尝试过吗