apex_item.checkbox2 命名参数时的行为

apex_item.checkbox2 behavior when naming parameters

此查询 returns 复选框 html 我希望在 Oracle apex 的 SQL 命令 window 中:

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;

唯一的区别是"CHECKED"?

您使用的 p_checked_values 错误:

From Apex Docs :

p_checked_values : 默认要检查的值

基本上,当使用 p_checked_values 时,您传入一个分隔值列表,将使用 'CHECKED' 指标,其中 p_value 在列表 p_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