我的主页面中有不同的区域。我想要实现的是根据记录的用户动态禁用一个或多个区域。
我已设法以静态方式禁用一个区域'。在页面属性中,在JavaScript菜单下,在Execute when Page Loads
中我输入了以下代码:
$('#R4').addClass('apex_disabled').attr('tabindex', '-1');
其中R4
是其中一个地区的ID
。
对于动态方式'我创建了一个Process
。例如,如果用户是ADMIN
,我想禁用区域R4
。这是代码(现在我没有检查用户,我只是试图使用禁用功能):
DECLARE
user VARCHAR2 (50);
BEGIN
select username into user
from USER
where username = V('APP_USER');
htp.p (' <script type = "text/javascript"> ');
htp.p (' function disableRegion()');
htp.p (' { ');
htp.p ('
$(''#R4'').addClass(''apex_disabled'').attr(''tabindex'',''-1''); ');
htp.p (' } ');
htp.p (' </script> ');
END;
这不起作用。有什么建议?谢谢!
答案 0 :(得分:2)
服务器端条件是正常的,您可以在其中使用任何形式的声明性表达式,或PL / SQL或SQL查询等。 这些页面在渲染后可能无法切换,因为它们不会首先渲染。
客户端条件可能来自页面加载时的动态操作,也可能受授权方案保护,因此仅存在某些动态操作才能触发。但正如有人所说,这不安全。
提供的代码永远不会存在于编写良好的APEX应用程序中,但我怀疑OP可能是在APEX 3.x上,或在那里学习。
答案 1 :(得分:1)
问题解决了。
需要启动脚本On Load - After Regions
。
我的设置为On Load - Before Header
。
所以它无法获得区域的ID
。