【问题标题】:Oracle APEX 5.1 Custom form issueOracle APEX 5.1 自定义表单问题
【发布时间】:2018-09-18 17:54:20
【问题描述】:

我有一个包含选择列表 (:P10_DROPDOWN) 的表单,该列表的值通过 SQL 定义:

SELECT
    display_name,
    value_id
FROM
    vw_dropdown_options;

作为一个 pre-render-before-header-process 我有以下 PL/SQL 来预填充:P10_DROPDOWN:

begin
    SELECT value_id
    INTO :P10_DROPDOWN
    FROM vw_dropdown_option_mapping
    WHERE vw_dropdown_option_mapping_id = :P10_DROPDOWN_OPTION_MAPPING_ID;
end;

此时我的表单出现在我的页面上,一切正常。但是,当用户单击按钮时,我需要触发一个自定义过程,因此在我页面上的一个按钮上,我定义了一个 onClick 事件来触发这个 pl/sql 块:

APEX_DEBUG.INFO ('P10_DROPDOWN_OPTION_MAPPING_ID ' || :10_DROPDOWN_OPTION_MAPPING_ID);
APEX_DEBUG.INFO ('P10_DROPDOWN ' || :P10_DROPDOWN);
NP_SAVE_MAPPING_VALUE (
    DROPDOWN_OPTION_MAPPING_ID => :P10_DROPDOWN_OPTION_MAPPING_ID,
    NEW_DROPDOWN_VALUE_ID => :P10_DROPDOWN
);

这是我第一次注意到我的问题; onClick 为 :P10_DROPDOWN 注销的值是最初通过我的 pre-render-before-header-process 设置的值,而不是我通过下拉菜单选择的值。

我尝试将下拉列表中的 source.used 值设置为“始终”和“仅”。我还用基于源的单值 SQL 查询替换了我的 pre-render-before-header-process。也不允许我的下拉菜单通过下拉菜单更改会话值。

我是否遗漏了有关这些会话值的某些内容?

【问题讨论】:

  • 顺便说一句;存储过程在单独运行时起作用。如果我使用 AJAX 请求,我也可以让它工作,但这似乎过于繁重,只是在提交字段时启动一个简单的存储过程。

标签: oracle oracle-apex oracle-apex-5.1


【解决方案1】:

我怀疑这是因为新选择的值不在会话状态。要对其进行测试,请创建一个提交按钮,按下它,然后再次检查结果。

只是问:你考虑过

  • 设置项目的默认值(而不是编写一个进程来预填充它)
  • 使用动态操作(而不是创建 onClick 事件)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 2020-01-06
    相关资源
    最近更新 更多