命名参数时的apex_item.checkbox2行为

时间:2016-06-14 18:16:27

标签: oracle checkbox plsql oracle-apex

此查询返回我希望在Oracle apex的SQL命令窗口中显示的复选框html:

SELECT APEX_ITEM.CHECKBOX2(1,empno,DECODE(deptno,10,'CHECKED',NULL)) "Select", ename, job
FROM emp
WHERE deptno = 10

i.e. <input type="checkbox" name="f01" value="7782" CHECKED />  

但如果我明确命名我的参数,我就得不到正确的结果:

SELECT APEX_ITEM.CHECKBOX2(p_idx=>1,p_value=>empno,p_checked_values=>DECODE(deptno,10, 'CHECKED',NULL)) "Select", ename, job
FROM emp
WHERE deptno = 10

<input type="checkbox" name="f01" value="7782" />   

我不明白为什么根据文档命名参数会导致此问题。这是来自在线文档:

APEX_ITEM.CHECKBOX2(
p_idx                       IN    NUMBER,
p_value                     IN    VARCHAR2 DEFAULT NULL,
p_attributes                IN    VARCHAR2 DEFAULT NULL,
p_checked_values            IN    VARCHAR2 DEFAULT NULL,
p_checked_values_delimiter  IN    VARCHAR2 DEFAULT ':',
p_item_id                   IN    VARCHAR2 DEFAULT NULL,
p_item_label                IN    VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

1 个答案:

答案 0 :(得分:2)

唯一的区别是“CHECKED”?

您使用p_checked_values错误:

From Apex Docs

p_checked_values:默认情况下要检查的值

基本上,在使用p_checked_values时,您会传入一个分隔值列表,'CHECKED'指标将用于列表p_valuep_checked_values的位置(由分隔符参数p_checked_values_delimiter)。它之前工作的原因是你将它作为第三个参数传递,实际上是p_attributes,它直接进入生成的HTML标记而不进行解析或更改。要修复您的代码,请使用以下内容,因为'CHECKED'属性不是由传递给p_value的值决定的:

SELECT APEX_ITEM.CHECKBOX2(p_idx=>1,p_value=>empno,p_attributes=>DECODE(deptno,10, 'CHECKED',NULL)) "Select", ename, job
FROM emp
WHERE deptno = 10