【问题标题】:Apex Link builder value - item not displayed on the target pageApex 链接构建器值 - 项目未显示在目标页面上
【发布时间】:2021-05-06 02:30:03
【问题描述】:

我从 Javascript 加载 P70_NODE_ID。

APEX 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 中插入值有关?

我该如何解决这个问题?

谢谢

【问题讨论】:

  • 您提到“从 Javascript 插入值”,但您所说的没有表明您在这里使用 Javascript。您的页面是否还有其他您没有告诉我们的事情?

标签: oracle oracle-apex


【解决方案1】:

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

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

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

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

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

动态事件

什么时候

事件:自定义

自定义事件:submitNodeSel

selectionType: 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");
}

【讨论】:

    【解决方案2】:

    2应该是

    1. 在项目和价值下:项目P80_STEP_ID价值&P70_NODE_ID_OUT.

    注意前导和号& 和尾随点.

    顺便说一句,如果您从 LoV 中选择列,Apex 会为您完成。

    【讨论】:

    • 对不起,我错过了 & 和句号。试过了,还是没用。
    • 那你做错了什么,因为那的方法。如果可能,请在 apex.oracle.com 上创建一个示例,提供开发人员凭据,以便我们中的某个人可以查看并可能提供帮助。
    • 好的,我将简化并测试。也许在后台发生了一些事情。如果这不起作用,我会按照你的建议做。谢谢
    • 当我提交页面,然后导航到另一个页面,一切正常。问题是提交重新加载了 Javascript 编写的复杂流程图。用户丢失了他选择的节点等信息。有没有不刷新页面就可以提交的方法?还是只刷新包含 node_id 项的区域?我可以使用设置会话实用程序吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    • 2017-02-23
    • 1970-01-01
    • 2018-01-07
    • 2023-04-08
    • 2016-09-20
    相关资源
    最近更新 更多