【问题标题】:Apex 5: dynamic action to set item and submit page - item unchangedApex 5:设置项目和提交页面的动态操作 - 项目不变
【发布时间】:2020-04-15 05:07:02
【问题描述】:

我想通过按钮上的动态操作设置项目值。 在“DialogClose”-Action 中显示对话框页面后,我在该操作的 True-branch 中执行“SetValue”和“SubmitPage”。

问题是:项目已设置但未提交。重新加载显示原始值。 已尝试此处显示的解决方案,但它并没有为我解决:Apex 5 : Dynamic action set page item value

接下来我怀疑问题在于页面加载时该区域被设置为“只读”。但是我尝试了没有将区域设置为只读 - 问题保持不变。

更新:仔细检查“只读”区域:它确实有所作为。取消设置“只读”使 id 工作。似乎我在测试时有点困惑......

动态动作如下所示:

设置值部分如下所示:

这是提交操作:

有什么想法吗?谢谢!

【问题讨论】:

  • 为什么选择“PL/SQL 表达式”作为设置值类型?是什么让您认为该值未提交?鉴于您对以下答案的回复,您似乎有一个表单页面正在从表中重新获取值。不是这样吗?
  • 哦,在那里做了一些实验 - 将其设置为“PL/SQL 表达式,因为我在那里读到了 stackoverflow.com/questions/29756037/… 但那个没有帮助。我从“静态”开始。是什么让我认为它没有提交?因为桌子上的值没有改变。
  • 我明白了。鉴于您的逻辑,静态很好。至于提交,您的操作没有指定请求/按钮名称。尝试将其设置为 CREATE 或 SAVE。

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


【解决方案1】:

我的第一个猜测是您的项目 P11_GUT_LIZ 有一个“来源”属性,在“始终,替换会话状态中的任何现有值”中设置了“已使用”

如果不是这样,我建议你在处理选项卡中添加一个“提交后”进程进行调试,显示页面提交后的值:

raise_application_error (-20001,'The value of P11_GUT_LIZ is: '||: P11_GUT_LIZ);

【讨论】:

  • 有趣的是,将其设置为“Always ...”以外的任何其他值都会引发错误,如文档中所述:“Page items based on a database column where the attribute Source Used is set to Only当会话状态中的当前值为 null 时,将在呈现页面项时引发错误。对数据库列使用此设置非常危险,并且可能导致在查看和保存多条记录时意外覆盖数据。始终将 Source Used 属性设置为总是,替换会话状态中的任何现有值。”将按照您接下来的建议尝试调试:-)
【解决方案2】:

正如问题更新中所写,问题在于该区域是只读的。所以设置一个值并提交它的想法可能从一开始就存在缺陷。但该区域必须保持只读状态。

所以我的解决方案是通过调用 pl/sql 过程在自动事务中设置该值。

感谢所有有价值的意见!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多