本文介绍了Oracle APEX-将IG列值传递给javascript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个具有链接列的IG,其中目标设置为URL,并且我使用它来调用javascript。
我想要完成的是每当单击链接列时,获取另一个隐藏列的值并将页面项目设置为该值:
javascript:$s('P1_ITEM',#COLUMN2#);alert($v('P1_ITEM'));
但是,如果我仅使用#COLUMN#
引用COLUMN2值,我会得到一个javascript错误,如果我用单引号将其括起来,则P1_ITEM的值从字面上设置为#COLUMN2#
。
推荐答案
我建议您首先移动到动态操作,而不是尝试将所有代码放在链接中。此外,我认为按钮比链接更好(并且可以将它们的样式设置为类似于链接)。 首先转到https://apex.oracle.com/ut。导航到Reference>;Button Builder并构建所需的按钮。然后从整个标记字段复制值。
将"链接"列的"类型"更改为"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>
为交互网格指定静电ID值my-ig。
完成此操作后,创建一个新的动态操作。将Name设置为.my-button click,event设置为Click,将Type设置为jQuery Selector,将jQuery Selector设置为.my-button。最后,将事件范围设置为动态,这将在报表刷新时使用事件委托来保持事件绑定工作(请参见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"值。我查找JOB列是因为我使用的是EMP表,但是您可以查找您需要的任何列。
这篇关于Oracle APEX-将IG列值传递给javascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!