【问题标题】:Having issues redirecting to another page on closing of modal dialog page在关闭模式对话框页面时重定向到另一个页面时出现问题
【发布时间】:2019-03-20 15:46:10
【问题描述】:

我有第 1 页,从中打开模式对话框页面 - 第 2 页。现在,当我关闭模式对话框时,我想重定向到第 3 页。在第 2 页上,我有一个按钮,其中定义了动态操作在按钮上单击两个动作:页面提交(提交后分支到第 3 页)和关闭对话框。单击按钮后,对话框关闭,但用户停留在第 1 页,而不是转到第 3 页。

【问题讨论】:

  • 你有什么代码可以捕捉模态外的点击动作吗?
  • 不确定您的意思。我向模态按钮上的按钮添加了一个动态操作
  • 是的,所以当有人单击模态框上的关闭按钮时,他们会被重定向,但是当他们在模态框外单击时,它们不会被重定向,模态框只会关闭,对吗?因此,您甚至需要在模态框外捕获该点击,如果模态框同时打开,则将用户重定向到下一页
  • 但此时当他们点击按钮时它甚至无法正常工作
  • 找出模态的容器并将动作附加到该容器上。代码示例将有很大帮助。 check this out also

标签: oracle-apex oracle-apex-5.1


【解决方案1】:

如果你有分支,你不需要关闭对话框..

另一种选择是使用 PL/SQL-JS 组合浏览页面,在服务器上运行代码后重定向到 URL。

  1. 创建一个名为 P2_TARGET 的隐藏的、不受保护的项目
  2. 使用由动态操作定义的操作创建一个按钮,
  3. 为该按钮添加一个动态动作 onClick,具有两个真正的动作:

    一个。执行PL/SQL代码,提交P2_Item,返回P2_TARGET

    declare
        js_code varchar(4000);
    begin
        js_code := REGEXP_REPLACE(
                     APEX_PAGE.GET_URL (
                         p_page => 3,
                         p_clear_cache => 3,
                         p_items  => 'P3_Item',
                         p_values => :P2_Item
                     )
            ,'\,this\)'
            ,q'<,$('#p1Region'))>' -- jQuery of event source
        );
    
        apex_util.set_session_state('P2_TARGET', js_code); 
    end;
    

    b.执行Javascript代码:

    eval($v('P2_TARGET'));
    

这应该可以解决问题

【讨论】:

  • 谢谢!这几乎就是我所拥有的,除了我从页面加载动态操作和我的 PL/SQL 执行 PL/SQL,设置 P2_TARGET 的值有点不同。 #p1Region 是什么?那是模态对话框页面上区域的静态ID吗?
  • 没错,这是模态对话框页面上区域的静态ID,写在这里有助于利用“关闭对话框”动态动作
  • 我这样做了,当我单击按钮时,什么也没有发生。所以我开始调试,一旦打开调试器它就工作了。但是没有调试就不行
  • 我在 apex 18.2 上工作,apex_page.get_url 在旧版本上的工作方式可能不同。除此之外,我建议检查 P2_TARGET 项目并查看它的外观(当然 - 确保在 plsql 之后返回 P2_TARGET,并且该项目具有保存的会话状态)
猜你喜欢
  • 2012-08-11
  • 2019-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-30
  • 1970-01-01
  • 2021-06-27
相关资源
最近更新 更多