Apex 5:动态操作设置页面项目值

时间:2015-04-20 18:50:17

标签: oracle-apex oracle-apex-5

使用新的apex 5版本时,我遇到了以下问题:

无法通过plsql获取页面项的值:

nv(:P2_TO, :P2_FROM) <<< DOESN'T WORK *I Yes P@_FROM exist and verified
nv(:P2_TO, 'test') <<< DOES WORK

我在apex.oracle.com和我自己的主机上都试过这两个都不会工作。

更多信息:

enter image description here

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:12)

这很合乎逻辑。您正在引用变量的会话状态,它可能是空的。这不是因为项目P2_TOP2_FROM在浏览器的页面上有一个值,它们在会话状态中设置了值。例如,加载您的网页,在P2_FROM中输入一个值。然后点击开发人员工具栏上的“会话”,您会发现P2_FROM中没有任何值 会话状态中的值与实际网页上的值不同。

这就是为什么有一个附加属性“要提交的页面项目”的确切原因,其中包含必须与数据库通信的操作(即对Web服务器执行ajax请求)。这允许您定义其值必须发送到服务器的项目,以便您可以使用它们的值。

因此:对于此类操作,请将P2_TO添加到“要提交的页面项目”列表中

答案 1 :(得分:1)

你总是可以使用apex util:

APEX_UTIL.set_session_state(p_name =&gt;'PX_MY_ITEM',p_value =&gt;'wibble');

示例1

APEX_UTIL.set_session_state('P1_MY_ITEM','My Text Value');

示例2

APEX_UTIL.set_session_state('P1_MY_OTHER_ITEM', 42);

示例3

APEX_UTIL.set_session_state('P1_MY_OTHER_OTHER_ITEM', MY_PLSQL_VARIABLE);