【问题标题】:Oracle Apex How to pass item values in page redirect between applications that are not in sessionOracle Apex 如何在不在会话中的应用程序之间传递页面重定向中的项目值
【发布时间】:2021-09-15 13:06:04
【问题描述】:

我使用的是 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 解决方案?

谢谢

【问题讨论】:

    标签: oracle apex oracle-apex-5.1


    【解决方案1】:

    创建动态操作并在单击按钮上执行它(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

    要返回的项目应该是 P10_MY_URL

    第二次真正的行动:

    javascript: window.location.href = apex.item('P10_MY_URL').getValue();
    

    就是这样。

    【讨论】:

    • 做到了。因此,如果您需要将更改的值从当前页面发送到不同应用程序中的模式页面,则页面重定向的原始想法不起作用。相反,您可以使用 APEX_UTIL.PREPARE_URL 为模态页面动态创建 url,并且此 url 将包含原始页面中的项目值,即使它们已更改且未提交。
    猜你喜欢
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多