我建议的第一件事是您转向动态操作,而不是尝试将所有代码放入链接中。另外,我认为按钮比链接更好(并且它们的样式可以看起来像链接)。
首先前往https://apex.oracle.com/ut https://apex.oracle.com/ut。导航至“参考”>“按钮生成器”并生成所需的按钮。然后复制其中的值整个标记 field.
改变Type链接列的HTML 表达式并将 Button Builder 中的 HTML 粘贴到HTML 表达式场地。我将按钮的样式设置为看起来像链接(正如您所拥有的那样),向名为的类属性添加了一个自定义类我的按钮,并为主键值添加一个数据属性(我的表是 EMP,所以 PK 是 EMPNO)。最后看起来像这样:
<button type="button" class="t-Button t-Button--link my-custom-button" data-id="&EMPNO.">Click me!</button>
给交互式网格一个静态ID的价值my-ig.
完成后,创建一个新的动态操作。放Name to .my-button 被点击, Event to Click, 选择Type to jQuery 选择器, and jQuery 选择器 to .my-button。最后,设置活动范围 to Dynamic,如果报表刷新,它将使用事件委托来保持事件绑定正常工作(请参阅).
在动作中,设置Action to 执行 JavaScript 代码。在下面的代码中输入Code field:
var id = $(this.triggeringElement).data('id');
var model = apex.region('my-ig').call('getViews').grid.model;
var record = model.getRecord(id);
var job = model.getValue(record, 'JOB');
$s('P1_ITEM', job);
alert($v('P1_ITEM'));
此代码首先使用 jQuery 从按钮上的 data- 属性获取主键的值data
方法。接下来,获取 IG 使用的模型的引用。然后是模型的getRecord
调用方法并传入主键值。最后,模型的getValue
方法用于从记录中获取“JOB”值。因为我使用的是 EMP 表,所以我选择了 JOB 列,但是您可以选择您需要的任何列。
您可以在此处了解有关模型方法的更多信息:https://apex.oracle.com/js https://apex.oracle.com/js> 接口 > 型号。