Oracle ApEx Radiogroup 禁用
Posted
技术标签:
【中文标题】Oracle ApEx Radiogroup 禁用【英文标题】:Oracle ApEx Radiogroup disabling 【发布时间】:2012-07-16 09:25:13 【问题描述】:我正在使用 Orace Apex,具体来说:
SELECT
APEX_ITEM.radiogroup(1,EMP_ACTIVE,'Y',NULL,'disabled'),
APEX_ITEM.radiogroup(2,CUST_ACTIVE,'Y',NULL,'disabled'),
APEX_ITEM.radiogroup(3,USER_ACTIVE,'Y',NULL,'disabled')
FROM table A;
问题是,这条语句运行良好,但在屏幕上难以阅读。
是否有另一种方法可以使这个无线电组看起来像一个普通的无线电组,没有禁用的外观,以使用户更容易阅读,但同时不允许用户实际更改无线电组?
【问题讨论】:
【参考方案1】:另一种方法是创建您自己的类似于单选按钮的图标并像这样使用它们:
SELECT
'<img src="' || case EMP_ACTIVE when 'Y' then 'myrg_selected.png'
else 'myrg_notselected.png' end || '"/>',
'<img src="' || case CUST_ACTIVE when 'Y' then 'myrg_selected.png'
else 'myrg_notselected.png' end || '"/>',
'<img src="' || case USER_ACTIVE when 'Y' then 'myrg_selected.png'
else 'myrg_notselected.png' end || '"/>'
FROM table A;
您可以将逻辑移动到函数中以使报告更简单:
SELECT
mypkg.radio_img(EMP_ACTIVE),
mypkg.radio_img(CUST_ACTIVE),
mypkg.radio_img(USER_ACTIVE)
FROM table A;
【讨论】:
啊 - 这似乎比我建议的要合理得多。我什至从来没有想过!接吻的好例子。【参考方案2】:您可以选择性地禁用单选按钮。禁用未选中的,并保持选中的“活动”
with d as (
select 'N' emp_active, 'N' cust_active, 'Y' user_active
from dual
union all
select 'N', 'Y', 'N'
from dual
union all
select 'Y', 'N', 'N'
from dual
)
SELECT
APEX_ITEM.radiogroup(1,EMP_ACTIVE,'Y',NULL, CASE EMP_ACTIVE WHEN 'N' THEN 'disabled' END) EMP_ACTIVE,
APEX_ITEM.radiogroup(2,CUST_ACTIVE,'Y',NULL, CASE CUST_ACTIVE WHEN 'N' THEN 'disabled' END) CUST_ACTIVE,
APEX_ITEM.radiogroup(3,USER_ACTIVE,'Y',NULL, CASE USER_ACTIVE WHEN 'N' THEN 'disabled' END) USER_ACTIVE
FROM d;
(如果我没看错的话:你的广播组是垂直的;在一列中只选择了一个?)
(取自Why can't radio buttons be "readonly"?)
【讨论】:
感谢汤姆,但不确定这是否是我所追求的,因为我可以禁用我的无线电组,但它的外观全是灰色且难以阅读。当您不禁用它时,它会保持蓝色并且易于阅读,这就是我所追求的,但仍然是只读的。希望这是有道理的。谢谢。 不幸的是,radiogroups 没有 readonly 属性,您可以在我帖子中的链接问题中找到。只有解决方法或替代方案。我的代码所做的是禁用所有未选择的字段,将选定的选项保留为蓝色,因此很容易被发现,而用户无法选择另一个选项(它们都被禁用)。如果这对你没有真正的作用,我会看一个不产生无线电组的替代 sql 语句。希望对您有所帮助。 其实汤姆,我想你提供的就是我所追求的。我会试一试。谢谢。 嗨,汤姆,只是想知道您上面的解决方案,由于某种原因,它似乎没有在 IE8 中正确呈现单选组按钮,即“Y”值不显示蓝点.. ..有任何想法吗?仅供参考,我在 IRR 上使用它。谢谢。 我刚刚在 FF 6.01 和 IE 8 中对它进行了测试,包括经典和交互式报告,带有 html5 主题。然后我切换到主题 20,但收音机仍然按预期工作。应该检查的无线电是启用还是禁用?你能看看元素html吗?为了衡量,我添加了一个屏幕截图和我用来测试我的答案的 sql。以上是关于Oracle ApEx Radiogroup 禁用的主要内容,如果未能解决你的问题,请参考以下文章
Oracle Apex 根据 LOV 选择的值动态启用/禁用文本字段