oracle apex 从 pl/sql 代码重定向到模态对话框页面

oracle apex redirect to modal dialoge page from pl/sql code

我的顶点页面中有一个页面进程。我想在页面处理完成后重定向到模态对话框页面。所以我写了代码

htp.init;
owa_util.redirect_url('f?p=&APP_ID.:34:APP_SESSION.::NO:34:P34_CODE,P34_DAY_DATE:P30_CODE.,'||:P30_DAY_DT); 
apex_application.stop_apex_engine;

第 34 页是模式对话框页面。因此它显示错误

page 34 cannot be rendered successfully. Ensure the page template in use on page 34 is of template type "Dialog page", with appropriate JavaScript dialog initialization, dialog closure and dialog cancel code defined.

然后我尝试

 l_url:=APEX_UTIL.PREPARE_URL('f?p=&APP_ID.:34:APP_SESSION.::NO::P34_CODE,P34_DAY_DATE:P30_CODE.,'||:P30_DAY_DT',p_checksum_type=>'SESSION'); 
 htp.init;
 apex_util.redirect_url(l_url);
 apex_application.stop_apex_engine;  

那对我也不起作用。有人有解决办法吗?

为按钮创建一个动态动作,复制页面进程中的 pl/sql 代码,然后在动态 action.Paste 复制的代码中添加一个动作 "execute pl/sql code"。

declare
   v_url varchar2(4000);
begin

   v_url:=apex_util.prepare_url
                  (p_url             =>  'f?p=&APP_ID.:34:&SESSION.:::34:P34_CODE:'|| :P30_CNAME,
                   p_triggering_element      =>'$(''#URLS'')'
                  );
   :p30_URL:=v_url;
end;

在此 pl/sql 之后,为相同的动态动作创建一个 javascript 动作并写入

 eval($('#P30_URL').val());

eval() 是默认的 js method.This 将重定向到模态页面