gpt4 book ai didi

javascript - Oracle APEX - 将 IG 列值传递给 JavaScript

转载 作者:行者123 更新时间:2023-11-28 03:04:09 31 4
gpt4 key购买 nike

我有一个带有链接列的 IG,其中目标设置为 URL,我用它来调用 javascript。

我想要完成的是每当单击链接列时,获取另一个隐藏列的值并将页面项设置为该值:

javascript:$s('P1_ITEM',#COLUMN2#);alert($v('P1_ITEM'));

但是会发生什么,如果我仅使用 #COLUMN# 引用 COLUMN2 值,则会收到 JavaScript 错误,如果我将其用单引号引起来,P1_ITEM 的值实际上会设置为 #COLUMN2#

最佳答案

我建议的第一件事是您转向动态操作,而不是尝试将所有代码放入链接中。另外,我认为按钮比链接更好(并且它们的样式可以看起来像链接)。

首先转到 https://apex.oracle.com/ut 。导航至“引用”>“按钮生成器”并生成所需的按钮。然后复制整个标记字段中的值。

将“链接”列的类型更改为HTML 表达式,并将按钮生成器中的 HTML 粘贴到HTML 表达式字段中。我将按钮的样式设置为看起来像链接(如您所见),向名为 my-button 的类属性添加了一个自定义类,并为主键值(我的表)添加了一个数据属性是 EMP,所以 PK 是 EMPNO)。最后看起来像这样:

<button type="button" class="t-Button t-Button--link my-custom-button" data-id="&EMPNO.">Click me!</button>

为交互式网格指定一个静态 IDmy-ig

完成后,创建一个新的动态操作。将名称设置为.my-button clicked,将事件设置为Click,选择类型jQuery选择器,以及jQuery选择器.my-button。最后,将事件范围设置为动态,这将使用事件委托(delegate)在报表刷新时保持事件绑定(bind)正常工作(请参阅 this for details )。

在操作中,将操作设置为执行JavaScript代码。在代码字段中输入以下代码:

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 > 接口(interface) > 型号。

关于javascript - Oracle APEX - 将 IG 列值传递给 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60756787/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com