环境: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页上的模式表格没有启动/显示。
答案 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