首页 > 解决方案 > Oracle APEX - 如何以编程方式在弹出式 LOV 中选择显示值

问题描述

有没有办法使用 PL/SQL 在弹出 LOV 中设置选定值?

我用

:P2_MYLOV := myval

它确实将 LOV 的返回值设置为myval但不显示选定的相应显示值。如何以编程方式选择 LOV 的值并设置相应的显示值?可能吗?

当我的 LOV 基于 SQL 查询并且只显示一个值时,它确实对我有用

SELECT val_id
FROM Table1
WHERE field1 = 'test'
AND parent_id = :P2_ITEM1;

但是一旦我将它设置为具有多列的共享组件值列表,它就会停止工作

标签: oracle-apexoracle-apex-19.2

解决方案


不太清楚你在问什么。我最大的问题是你什么时候试图改变价值。我猜你有一个 Apex 项目,它是某个页面上的 Popup LOV,并且你希望在页面加载时选择一个值?

您已经获得了Source项,这是一个控制页面加载时填充值的计算。这可以通过 PL/SQL 表达式、SQL 查询或其他方式来完成。每次“总是,替换会话状态中的任何值”或会话状态中没有值时“仅当会话状态中的当前值为空”时,都可以重新计算。

另一个选项是Default,如果在计算 Source 之后该值仍然为空,则使用该值。这也可以是表达式或查询。

如果您尝试更改浏览器中某个项目的值,例如响应某些用户操作,那么您需要一个不使用 PL/SQL的Dynamic Action 。唯一起作用的情况是新值只能在数据库中计算,并且 Apex 需要对数据库进行往返,但这并不常见。

[我刚刚在 apex.oracle.com 上尝试了对 Popup LOV 的动态操作,但没有成功。我不确定为什么。不过,它适用于常规选择列表。]


推荐阅读