怎么知道模态对话框关闭了?

How know the modal dialog closed?

我正在使用 APEX 21.1。我有一个带有交互式报告的页面。默认 link 打开模式对话框页面。我在它的查询中添加了两列 Link 类型。例如,

select deptno, dname, loc, 'Open Examination Dialog' as examination_dialog, 'Open followup dialog' as followup_dialog from dept;

我需要在新选项卡中打开一个页面,并在检查对话框关闭时向其发送参数。并在关闭后续对话框时使用不同的参数执行相同的操作。所以,我需要知道关闭了哪个对话框,并基于该对话框执行 javaScript 动态操作,代码如下

apex.navigation.openInNewWindow();

我尝试为检查对话框列和后续对话框设置静态 ID,并创建了 2 个“对话框关闭”类型的动态操作,并将列的静态 ID 设置为调用对话框页面的 jQuery 选择器。但是没有任何反应。 我可以知道关闭了哪个对话框并根据它执行动态操作吗? 这是一个模拟...

ws=ESLAM_WS
un= forhelp  
pwd=Forhelppwd$  
app=TEST2_FOR_ME  
pages= 2 and 6

第 2 页中的 IR 有一个名为“打开对话框”的列(Link)。它应该打开第 6 页,这是一个模式。 Page 2 有一个“Dialog Closed”动态动作,当对话框关闭时应该显示一个警告。但是动态动作不会触发。应该有另一列打开另一个模态对话框,当关闭时,我需要执行另一个动态操作,例如,另一个警报。

创建 2 个动态操作,每个对话框页面一个。添加此 javascript 表达式作为动态操作的客户端条件(除了标准的“关闭对话框”),当第 6 页关闭时应触发:

this.data && this.data.dialogPageId && this.data.dialogPageId == 6

对第二个动态操作执行相同的操作,但为 this.data.dialogPageId

设置适当的值

在动态动作javascript中,this指的是触发元素。自己研究这个问题的最佳方法是在动态动作 true 动作中执行 javascript(仅用于开发)

console.log(this);

您会注意到数据中有一个属性 dialogPageId 的值为 closed window。因此,如果在关闭该特定页面时触发动态操作,则此条件将为真。