如何添加将通过执行 JavaScript 代码重定向到另一个页面的动态操作

How to add a dynamic action that will redirect to another page by executing JavaScript Code?

本文关键字:另一个 重定向 代码 操作 动态 JavaScript 执行 何添加 添加      更新时间:2023-09-26

我的顶级应用程序上有按钮,可以在单击时执行自定义PL/SQL代码。它们的名称为"应用"("确认")和"更改"(计数正确)。我需要拥有它,以便当单击APPLY时,它会重定向到同一页面(实现PL/SQL代码),当单击CHANGE时,它会重定向到另一个页面(实现PL/SQL代码)。

我尝试通过"按下按钮时"和/或"条件类型:请求 = 表达式 1"为处理后设置条件分支,表达式 1 的值等于"应用"或"更改"。我无法以这种方式产生我正在寻找的结果(令人沮丧)。APEX 说提交的页面请求采用单击的名称按钮(即单击应用时应用),但我无法做到这一点。

我现在正在寻求在我的动态操作中添加一个真正的操作 APPLY和CHANGE(目前是"执行PL/SQL代码"和"提交页面"),该操作执行Javascript代码重定向到应用程序中的所需页面。

我认为,代码会利用这样的东西

"apex.navigation.redirect('f?p=928:35:4081364075246::NO:::');"

在这种情况下,第 35 页是我希望"更改"按钮重定向到的页面。

并不像我想的那样精通 JavaScript,所以任何关于我的方法论的帮助将不胜感激。

我终于找到了如何做到这一点。按钮的请求(特别是按钮的动态操作)未设置为按钮名称,因为"提交页面"true 操作的"请求/按钮名称"未设置为按钮的名称。

确保在动态操作中添加此信息到"设置"下。分支应设置为"提交:处理之前",条件为"请求 = 表达式 1",表达式 1 等于按钮名称!

在最近的一个项目中,一旦用户单击模型页面上的"保存"按钮,我就需要进行页面重定向。该按钮有一个动态操作,其中包括 3 个单独的操作:

  • 执行 PL/SQL
  • 提交页面
  • 关闭对话框

Submit PageClose Dialog之间,我添加了一个Execute Javascript操作,该操作单击了我添加到页面的隐藏按钮。

 document.getElementById("BTN_ID").click();

隐藏按钮设置为在行为 -> 操作 -> 重定向到应用程序中的页面,并且页面#

我隐藏了#BTN_ID{visibility:hidden;}放置在页面的 CSS 内联部分中的按钮。

这奏效了。

以下是我解决类似情况的方法:我希望第 2 页上的 DELETE 按钮除了删除显示的行外,还对其他表执行删除,然后返回第 1 页:

    删除
  • 了现有的"删除"按钮。
  • 使用以下方式创建新按钮:按钮名称=删除、标签=删除、操作=提交页面
  • 创建了一个提交后流程分支,其中包含:名称=删除并返回到第 1 页,执行点=提交后,行为类型=页面或 URL,目标=页面 1,高级请求=删除,服务器端条件=按下按钮时=删除,类型=PL/SQL 函数体

然后 PL/SQL 函数体:

   lv_msg   varchar2(2000) := null;
begin
   pz_delete_related_records(:P2_KEY1, :P2_KEY2, lv_msg);
   DELETE FROM BASE_TABLE
   WHERE KEY1 = :P2_KEY1
   AND   KEY2 = :P2_KEY2;
   RETURN TRUE;
end;