Redirect/Refresh 使用动态操作的页面 - Oracle Apex 21.1
Redirect/Refresh Page Using Dynamic Action - Oracle Apex 21.1
我有一个可以创建用户帐户的页面 (Page 7
)。当用户单击 Add User
按钮时,用户会经历一个 Create New User Account
流程。此流程遵循 3 个步骤:
- 第 1 步:
User Info
模态 (Page 10
) 显示以输入用户信息,在 Next
上保存并跳转到 Step 2
- 第 2 步:
User Roles
模态 (Page 11
) 显示为用户分配授权角色,在 Done
分支到 Step 3
- 第 3 步:确认模式 (
Page 12
) 显示用户信息和一些元数据并确认 New User Account Created
当用户点击Step 3
中的Close
按钮时,我想:
- 关闭
Step 3
对话框 (Page 12
)
- 父页面,
User Main
,(Page 7
) 到 redirect/reload 传递新用户名以填充此新用户帐户在 Page 7
上的基础报告。
由于 Step 3
中没有提交操作 (PROCESS
) - 它只是呈现数据 - 我假设我不能使用像步骤 1 和 2 这样的分支。我需要依赖一个动态动作。所以我尝试设置一个在 Dialog Closed
事件上触发的 DA Executes Server-side Code
:
DECLARE
vc_Page7_URL VARCHAR2(4000);
BEGIN
vcPage7_URL := apex_page.get_url(
p_page => 7,
p_items => 'P7_USERNAME',
p_values => :P12_USERNAME
);
apex_util.redirect_url(
p_url => vc_Page7_URL
);
END;
这不符合我的预期。我显然在这里忽略了一些东西。我将上面代码中的 url 记录到调试堆栈并且 url 正在正确生成,但我没有得到重定向到 Page 7
。任何帮助将不胜感激。
我不确定这是否会奏效 - 您无法在动态操作过程中从 pl/sql 内部进行重定向。 pl/sql代码在后台是运行,无法重定向页面。有2个选项
- 更改第 7 页上的 true 操作以提交页面并添加一个分支以重定向到您选择的 url
- 使用 javascript 重定向(google 它,你会在上面找到几个链接)
根据@koen 的建议,我将上面的代码更改为 Close Dialog
事件下的 2 个 TRUE 操作,该事件附加到 Done
按钮的 Click
事件:
Execute Server-side Code
:
BEGIN
-- i created a hidden page item to hold the URL
:P12_REDIRECT_URL := apex_page.get_url(
p_page => 7,
p_items => 'P7_USERNAME',
p_values => :P12_USERNAME
);
END;
Execute JavaScript Code
:
let url = $v("P12_REDIRECT_URL");
apex.navigation.redirect(url);
我有一个可以创建用户帐户的页面 (Page 7
)。当用户单击 Add User
按钮时,用户会经历一个 Create New User Account
流程。此流程遵循 3 个步骤:
- 第 1 步:
User Info
模态 (Page 10
) 显示以输入用户信息,在Next
上保存并跳转到Step 2
- 第 2 步:
User Roles
模态 (Page 11
) 显示为用户分配授权角色,在Done
分支到Step 3
- 第 3 步:确认模式 (
Page 12
) 显示用户信息和一些元数据并确认New User Account Created
当用户点击Step 3
中的Close
按钮时,我想:
- 关闭
Step 3
对话框 (Page 12
) - 父页面,
User Main
,(Page 7
) 到 redirect/reload 传递新用户名以填充此新用户帐户在Page 7
上的基础报告。
由于 Step 3
中没有提交操作 (PROCESS
) - 它只是呈现数据 - 我假设我不能使用像步骤 1 和 2 这样的分支。我需要依赖一个动态动作。所以我尝试设置一个在 Dialog Closed
事件上触发的 DA Executes Server-side Code
:
DECLARE
vc_Page7_URL VARCHAR2(4000);
BEGIN
vcPage7_URL := apex_page.get_url(
p_page => 7,
p_items => 'P7_USERNAME',
p_values => :P12_USERNAME
);
apex_util.redirect_url(
p_url => vc_Page7_URL
);
END;
这不符合我的预期。我显然在这里忽略了一些东西。我将上面代码中的 url 记录到调试堆栈并且 url 正在正确生成,但我没有得到重定向到 Page 7
。任何帮助将不胜感激。
我不确定这是否会奏效 - 您无法在动态操作过程中从 pl/sql 内部进行重定向。 pl/sql代码在后台是运行,无法重定向页面。有2个选项
- 更改第 7 页上的 true 操作以提交页面并添加一个分支以重定向到您选择的 url
- 使用 javascript 重定向(google 它,你会在上面找到几个链接)
根据@koen 的建议,我将上面的代码更改为 Close Dialog
事件下的 2 个 TRUE 操作,该事件附加到 Done
按钮的 Click
事件:
Execute Server-side Code
:
BEGIN
-- i created a hidden page item to hold the URL
:P12_REDIRECT_URL := apex_page.get_url(
p_page => 7,
p_items => 'P7_USERNAME',
p_values => :P12_USERNAME
);
END;
Execute JavaScript Code
:
let url = $v("P12_REDIRECT_URL");
apex.navigation.redirect(url);