【问题标题】:Oracle Apex:Why is this dynamic action not getting triggered/fired?Oracle Apex:为什么这个动态操作没有被触发/触发?
【发布时间】:2026-01-25 07:50:01
【问题描述】:

我正在使用 Application Express 4.0.0.00.25 (Apex 4.0 EA2)。我创建了一个简单的表单,字段很少。每个字段都不是直接输入,而是附加一个 LOV 选择器,并且在选择 LOV 值时,id 会存储在字段中。

我有一个与该字段关联的动态操作(事件 - 项目更改,条件 - 始终,操作 - 通过 SQL 查询设置值)。 但是,在从 LOV 中选择值时,不会触发动态操作。如果我选择在页面加载时触发的动态操作,那么它会起作用,但不会在从 LOV 中选择项目时起作用。为什么会这样,是设计使然还是错误?

【问题讨论】:

    标签: oracle-apex


    【解决方案1】:

    Apex 4.0 动态操作尚不适用于弹出式 LOV。我怀疑它们会在 Apex 4.0 发布时工作,尽管我不确定。我已经阅读in Patrick Wolf's blog ,虽然目前还没有,但级联 LOV 功能最终将适用于弹出式 LOV,我想这同样适用。

    如果您的 LOV 不是太大,您可以将项目更改为选择列表,动态操作将起作用。

    【讨论】:

    • 嗯,我相信我用错了术语。表格形式是指单个记录形式,而不是多记录形式。这是应用网址:tryapexnow.com/apex/…
    • 是的,表格形式就是多记录形式!我现在已经更新了我的答案。
    • 顺便说一句,我看到你在 Oracle 论坛上问过同样的问题:forums.oracle.com/forums/thread.jspa?messageID=4232468,它仍然说“表格”。您可能需要对其进行编辑,然后您应该从 Apex 开发团队之一那里得到明确的答案,因为他们积极参与了该论坛。
    • 哦!我懂了。不幸的是,我无法选择列表,因为数据会大幅增长。我怎样才能实现类似的功能,替代步骤?
    • 您需要编写一个带有 AJAX 调用数据库的 Javascript 函数,并从 poplist 项上的 onchange 触发器调用它。请参阅:oracleapplicationexpress.com/tutorials/68-basics-of-ajax 示例
    【解决方案2】:

    您的弹出 Lov 项目在表单中输入 2 个,P1_ITEM 和 P1_ITEM_HIDDENVALUE。使用动态操作设置隐藏项(P1_ITEM_HIDDENVALUE)没有问题。对于 P1_ITEM,我创建了一个额外的隐藏项(P1_EXTRA - 受保护的值应为“否”),添加了另一个真正的操作,将 P1_EXTRA 设置为我需要在 P1_ITEM 中填充的值。然后我使用以下代码添加了另一个真正的操作(执行 JavaScript 代码):

    $s('P1_ITEM',$('#P1_ITEM_HIDDENVALUE').val(),$('#P1_EXTRA').val());

    希望这对任何人都有帮助

    【讨论】: