Oracle APEX Shuttle Refresh 以在会话状态中显示 Shuttle 权限值

Oracle APEX Shuttle Refresh to Display Shuttle Right Values in Session State

我将 Oracle APEX v4.2 与 Oracle 11g R2 DB 和 IE11 浏览器一起使用。

我的页面中有一个名为 P1_MY_SHUTTLE 的穿梭项目,它在左侧有一些基于 LOV 查询的值,这一切都很好。

我还可以让用户从旁边带有 "Add" 按钮的单独文本字段 (P1_MY_VALUE) 输入他们的值。

因此,当用户输入他们的值并按下 "Add" 按钮时,我希望将此值添加到穿梭车(右侧)。

我的 "Add" 按钮发生动态操作点击,运行以下 PL/SQL 代码:

  begin
  if :P1_MY_VALUE is null then
  :P1_MY_SHUTTLE := :P1_MY_VALUE;
  else
  :P1_MY_SHUTTLE := :P1_MY_SHUTTLE || ':' || :P1_MY_VALUE;
  end if;
  end;

现在,这一切工作正常,因为我在会话状态中有值,但我的问题是,每次用户按下 "Add" 时,我需要在我的 P1_MY_SHUTTLE 中向用户显示这些值按钮。

不幸的是,我无法使用 DA 刷新来刷新穿梭项目,因为这不起作用,但如果我执行整页刷新 (F5),则会显示会话中的结果。

如何在不执行整页刷新的情况下显示结果?我基本上需要在每次单击 "Add" 按钮后显示会话状态中的值。

代替"Execute PLSQL",使用"Execute Javascript":

$("#P1_MY_SHUTTLE_RIGHT").append("<option value='"+$v("P1_MY_VALUE")+"'>"+$v("P1_MY_VALUE")+"</option>");

这将在 select 列表中附加一个额外的选项,用于右手显示航天飞机。