首页 > 解决方案 > Apex 链接构建器值 - 项目未显示在目标页面上

问题描述

我从 Javascript 加载 P70_NODE_ID。

顶点 20.2

然后运行以下命令:

  1. apex_util.set_session_state('P70_NODE_ID_OUT', :P70_NODE_ID);

当我显示会话时,我看到 P70_NODE_ID_OUT 和 P70_NODE_ID。他们都有正确的价值观

  1. 使用链接生成器链接到另一个页面

在项目和值下:项目 P80_STEP_ID 值:P70_NODE_ID_OUT

  1. 显示 p80_STEP_ID

我从来没有看到过价值。

注意:目标页面是使用表单向导构建的模式对话框。

我尝试使用 where 语句 P80_STEP_ID = :P70_NODE_ID_OUT

我仍然没有看到价值。

问题是否与从 Javascript 中插入值有关?

我该如何解决这个问题?

谢谢

标签: oracleoracle-apex

解决方案


事实证明,当在同一个应用程序中使用重定向到另一个页面时,它使用页面构建时存在的值,并且不再查看这些值。因此,当页面加载后值发生更改时,不会使用新值。以下允许您在重定向时使用更改的值。

使用 Apex 社区的建议。这对我有用。

这使用 apex_page.get_url 和您建议的技术。测试不错。

在流程图中选择节点时运行的 Javascript:

$s('P72_NODE_ID', tagNum);
$s('P72_NODE_TYPE', selNode.getShape().getId());
$.event.trigger('submitNodeSel');

动态事件

什么时候

事件:自定义

自定义事件:submitNodeSel

选择类型:javascript 表达式

javascript表达式:文档

真正的行动

动作:设定值

设置类型:PL/SQL 函数体

DECLARE

STEP_DETAIL_URL varchar2(2000);

l_app number := v('APP_ID');

l_session number := v('APP_SESSION');
BEGIN   

STEP_DETAIL_URL :=  apex_page.get_url(

  p_page => '80'

, p_items => 'p80_step_id,p80_node_type'

, p_values => :p72_node_id || ',' || :p72_node_type

, p_plain_url => true); 



RETURN STEP_DETAIL_URL;

END;

输入:p72_node_id,p72_node_type

受影响的元素

选择类型:项目

项目:P72_STEP_DETAIL_URL

按钮

动态动作

执行javascript代码

真正的行动

Javascript

makeDialogUrl( $v("P72_STEP_DETAIL_URL"));

Javascript代码

function makeDialogUrl (url) {
    var i;
    // replace unicode escapes
    url = url.replace(/\\u(\d\d\d\d)/g, function(m,d) {
        return String.fromCharCode(parseInt(d, 16));
    });
apex.navigation.dialog(url,
{title:'Dialog In 
Out',height:'auto',width:'720',maxWidth:'960',modal:true,dialog:null},
"t-Dialog-page--standard", "#STEP_DETAILS");
}

推荐阅读