APEX根据查询选择列表

时间:2015-12-11 12:52:21

标签: oracle oracle-apex

APEX 4.2。我根据查询在表单上选择列表:

SELECT empno || ' ' || ename AS d, empno AS r
  FROM emp

当展开选择列表时,会显示两个连接的字段。

when expanded

但是当选择了某个值并且列表折叠时,我只需要在表单上显示Ename。所以我只需要在没有号码的情况下拍摄2张JONES。当然,无论如何,返回值必须是empno。

when already selected

[编辑]我的意思是,当选择列表打开时,我需要显示Empno和Ename,只有Ename在折叠时显示,并且Empno都会返回。

1 个答案:

答案 0 :(得分:0)

尝试添加另一个文本字段以捕获名称并将其放在选择列表上。因此,每次选择项目时,显示的值都将在单独的容器中进行控制。你可以这样做:

  •   

    除了您创建的SELECT LIST ITEM之外。添加另一个TEXTFIELD。

  •   

    然后在 Javascript>下的主页面上页面加载时执行

粘贴此代码:

$('#P5_SELECT_CONTAINER div:nth-child(2)' ).append($('#P5_TEXT'));
var s_width = Number($('#P5_SELECT').css("width").replace("px",""));
$('#P5_TEXT').css({"width":(s_width-22)+"px","position":"relative","right":s_width+"px","pointer-events":"none"});

但首先您需要选择列表的名称/ ID以及您创建的文本字段。对于此代码,

选择列表ID = P5_SELECT

textfield id = P5_TEXT

只需用你已有的替换它们(selectlist和textfield id)。 然后创建一个动态动作

  
      
  • EVENT =更改
  •   
  • 选择类型=项目
  •   
  • ITEM = P5_SELECT (或在您的情况下,您的SELECT LIST的名称)
  •   
  • 行动=执行JAVASCRIPT
  •   

然后粘贴此代码

var sel = $('#P5_SELECT option:selected').text();
var substr_sel = sel.substr(sel.indexOf('-')+1).trim();
$s('P5_TEXT', substr_sel);
console.log($v('P5_TEXT')); -- just to check if return is correct.
  

注意:只需使用宽度播放,只显示选择列表的向上/向下箭头。

希望这有助于

相关问题