APEX ORACLE - 使用 PL/SQL + Javascript 动态禁用区域
APEX ORACLE - Disable a region dynamically with PL/SQL + Javascript
我的主页有不同的区域。我想要完成的是根据登录用户动态禁用一个或多个区域。
我已经设法在 'static way' 中禁用一个区域。在页面属性中,在 JavaScript 菜单下,在 Execute when Page Loads
中,我输入了以下代码:
$('#R4').addClass('apex_disabled').attr('tabindex', '-1');
其中 R4
是其中一个地区的 ID
。
对于 'dynamic way' 我创建了一个 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;
这是行不通的。有什么建议么?谢谢!
问题已解决。
需要启动脚本 On Load - After Regions
。
我的设置为 On Load - Before Header
。
所以无法获取区域的 ID
。
服务器端条件正常,您可以在其中进行任何形式的声明性表达,或PL/SQL或SQL查询等。
一旦页面呈现,这些可能不会切换回来,因为它们一开始就没有呈现。
客户端条件可能来自页面加载时触发的动态操作,这也可能受到授权方案的保护,因此只有某些动态操作存在触发。但正如有人建议的那样,这并不安全。
所提供的代码永远不会存在于一个编写良好的 APEX 应用程序中,尽管我怀疑 OP 可能在 APEX 3.x 上,或者在那里学到的。
我的主页有不同的区域。我想要完成的是根据登录用户动态禁用一个或多个区域。
我已经设法在 'static way' 中禁用一个区域。在页面属性中,在 JavaScript 菜单下,在 Execute when Page Loads
中,我输入了以下代码:
$('#R4').addClass('apex_disabled').attr('tabindex', '-1');
其中 R4
是其中一个地区的 ID
。
对于 'dynamic way' 我创建了一个 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;
这是行不通的。有什么建议么?谢谢!
问题已解决。
需要启动脚本 On Load - After Regions
。
我的设置为 On Load - Before Header
。
所以无法获取区域的 ID
。
服务器端条件正常,您可以在其中进行任何形式的声明性表达,或PL/SQL或SQL查询等。 一旦页面呈现,这些可能不会切换回来,因为它们一开始就没有呈现。
客户端条件可能来自页面加载时触发的动态操作,这也可能受到授权方案的保护,因此只有某些动态操作存在触发。但正如有人建议的那样,这并不安全。
所提供的代码永远不会存在于一个编写良好的 APEX 应用程序中,尽管我怀疑 OP 可能在 APEX 3.x 上,或者在那里学到的。