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);
PL/SQL代码
开始
从 emp 中删除
其中 empno = :P1_EMPNO;
结束;
刷新区域
它根本不起作用,当我点击 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
添加“刷新”类型的真实操作以刷新交互式网格区域。
如何在交互式网格中创建一个 link 列来执行动态操作?
我创建了一个演示应用程序来从 emp table 中删除员工,其中我有一个包含 4 个步骤的 DA:
1.Confirmation
2.JavaScript代码
var empNo = $(this.triggeringElement).attr('href');
apex.item('P1_EMPNO').setValue(empNo);
PL/SQL代码
开始 从 emp 中删除 其中 empno = :P1_EMPNO; 结束;
刷新区域
它根本不起作用,当我点击 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:
这是一种方法。这是我的环境,不是你的。这是关于 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
添加“刷新”类型的真实操作以刷新交互式网格区域。