Oracle Apex 如何在不在会话中的应用程序之间的页面重定向中传递项目值
Oracle Apex How to pass item values in page redirect between applications that are not in session
我正在使用 Oracle Apex 5.1。
假设我有两个应用程序,id 分别为 128 和 999。我在应用程序 128:10 中有一个页面有一个按钮可以重定向到应用程序 999:12 中的一个页面,发送一些从 128:10 页项目到 999:12.
页面项目的值
页面 128:10 是普通 DML 页面,页面 999:12 是模态页面,因此它在 128:10 页面上打开。
问题是从页面 128:10 发送的项目值在未提交页面的情况下被更改。由于重定向按钮是在加载页面时呈现的,因此它不是使用当前项目值进行重定向,而是使用原始项目值进行重定向。先提交页面不是一种选择。
设置按钮提交页面,而不是页面 999:12 的分支不起作用,因为页面 999:12 是模式页面。
我不知道如何或是否可以直接访问 128:10 页面 999:12 中的项目。
类似 :P12_ITEM := :P10_ITEM
的东西不起作用,因为页面在不同的应用程序中。
任何人都可以建议我如何让重定向工作,将当前值从页面 128:10 发送到页面 999:12,最好没有复杂的 javascript 解决方案?
谢谢
创建动态动作并在单击按钮时执行它(P10_MY_URL 项应创建为隐藏):
第一个正确的动作:
DECLARE
l_app number := v('APP_ID');
l_session number := v('APP_SESSION');
BEGIN
:P10_MY_URL:= APEX_UTIL.PREPARE_URL(
p_url => 'f?p=999:12:'||l_session||'::NO::P12_ITEM:&P10_CURRENTPAGE_ITEM.',
p_checksum_type => 'SESSION');
END;
要提交的项目应包含您要从中传递价值的任何项目,在本例中为 P10_MY_URL、P10_CURRENTPAGE_ITEM
return 的项目应该是 P10_MY_URL
第二个正确的动作:
javascript: window.location.href = apex.item('P10_MY_URL').getValue();
就是这样。
我正在使用 Oracle Apex 5.1。
假设我有两个应用程序,id 分别为 128 和 999。我在应用程序 128:10 中有一个页面有一个按钮可以重定向到应用程序 999:12 中的一个页面,发送一些从 128:10 页项目到 999:12.
页面项目的值页面 128:10 是普通 DML 页面,页面 999:12 是模态页面,因此它在 128:10 页面上打开。
问题是从页面 128:10 发送的项目值在未提交页面的情况下被更改。由于重定向按钮是在加载页面时呈现的,因此它不是使用当前项目值进行重定向,而是使用原始项目值进行重定向。先提交页面不是一种选择。
设置按钮提交页面,而不是页面 999:12 的分支不起作用,因为页面 999:12 是模式页面。
我不知道如何或是否可以直接访问 128:10 页面 999:12 中的项目。
类似 :P12_ITEM := :P10_ITEM
的东西不起作用,因为页面在不同的应用程序中。
任何人都可以建议我如何让重定向工作,将当前值从页面 128:10 发送到页面 999:12,最好没有复杂的 javascript 解决方案?
谢谢
创建动态动作并在单击按钮时执行它(P10_MY_URL 项应创建为隐藏):
第一个正确的动作:
DECLARE
l_app number := v('APP_ID');
l_session number := v('APP_SESSION');
BEGIN
:P10_MY_URL:= APEX_UTIL.PREPARE_URL(
p_url => 'f?p=999:12:'||l_session||'::NO::P12_ITEM:&P10_CURRENTPAGE_ITEM.',
p_checksum_type => 'SESSION');
END;
要提交的项目应包含您要从中传递价值的任何项目,在本例中为 P10_MY_URL、P10_CURRENTPAGE_ITEM
return 的项目应该是 P10_MY_URL
第二个正确的动作:
javascript: window.location.href = apex.item('P10_MY_URL').getValue();
就是这样。