Link IG 中的列与 DA 更新 table

Link column in a IG with DA to update a table

如何在交互式网格中创建一个 link 列来执行动态操作?

我创建了一个演示应用程序来从 emp table 中删除员工,其中我有一个包含 4 个步骤的 DA:

1.Confirmation

2.JavaScript代码

var empNo = $(this.triggeringElement).attr('href');
apex.item('P1_EMPNO').setValue(empNo);
  1. PL/SQL代码

    开始 从 emp 中删除 其中 empno = :P1_EMPNO; 结束;

  2. 刷新区域

它根本不起作用,当我点击 link 列时它什么也没做

我创建了一个演示应用程序,如有任何建议,我将不胜感激:

https://apex.oracle.com/pls/apex/f?p=4550:1

工作区:igtest

用户:demouser

通过:apexdemo

据我所知,

this.triggeringElement 在版本 21 之后在 Oracle Apex 中无法正常工作。 我检查了您的演示应用程序,发现您正在尝试通过 Jquery 选择器执行动态操作。我建议您使用列选择器作为:

编辑:当我深入检查您的演示应用程序时,我看到您正在使用类型为 link 的 EMPNO 列,并将 link 设置为 #EMPNO#。 这意味着此 link 正试图转到 URL: apex.oracle.com/pls/apex//#EMPNO#,这是无效的。要么将 link URL 更改为您要创建的有效模式确认对话框页面,要么删除 link 以便触发动态操作。

这是一种方法。这是我的环境,不是你的。这是关于 emp table 的 editable IG 报告,第 55 页。功能是单击 link 时薪水增加 1。

此技术的简短说明:

  • 将 link 的数据属性设置为“EMPNO”,以便 javascript
  • 可以读取它
  • 使用class捕捉点击事件
  • 点击 link 时触发事件
  • 侦听该事件并执行 pl/sql 代码。

1. 在报告中添加 link 列。我使用报表的“创建列”选项添加源类型为“SQL 表达式”和 sql 表达式的列: '<span class="fa fa-check-circle-o raise_salary" aria-hidden="true" data-empno="'||EMPNO||'"></span>'

2. 添加动态操作“Raise Salary Clicked”,事件范围“dynamic”

添加设置值类型的真实操作:

添加执行类型的真实操作 Javascript 代码:

动作:执行Javascript代码

代码:$.event.trigger("raisesalary");

3. 添加动态操作“raisesalary 事件之后”,事件范围“dynamic”

添加“执行服务器端代码”类型的真实操作:

PL/SQL代码:UPDATE emp SET sal = sal + 1 WHERE empno = :P55_EMPNO

要提交的项目:P55_EMPNO

添加“刷新”类型的真实操作以刷新交互式网格区域。