首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle如何使用JavaScript从交互式网格访问弹出的LOV值(请提供一些JS帮助!)

Oracle如何使用JavaScript从交互式网格访问弹出的LOV值(请提供一些JS帮助!)
EN

Stack Overflow用户
提问于 2021-08-23 03:27:16
回答 2查看 1.2K关注 0票数 1

Oracle APEX版本: 21.1.0

我在一个APEX页面上有许多交互式网格(一周中每天都有一个),我希望将数据保存到APEX集合中。IG_MON交互式网格包含3列,它们的静态ID是:

COL_MON_PROJECT

COL_MON_HOURS

COL_MON_DESCRIPTION

我有一个动态操作(每天),运行一些将IG数据保存到以下页面项中的JavaScript:

P704_MON_PROJECT

P704_MON_HOURS

P704_MON_DESCRIPTION

(然后,在Javascript运行之后,我将Ajax回调进程调用到我的APEX集合的add_member )。

由于列类型为“文本字段”,因此它成功地用于COL_MON_HOURS和COL_MON_DESCRIPTION列。

对于COL_MON_PROJECT列,我将其设置为弹出LOV,其中显示显示的“项目名称”,以及返回值的ID。

当我使用下面的代码保存COL_MON_PROJECT弹出的LOV值时,在会话状态中,我可以看到P704_MON_PROJECT显示为对象对象。

我尝试了几个不同的选择,但我还不够精通JavaScript,使它非常正确!

代码语言:javascript
复制
var col_project;

var col_hours;

var col_description;



var model = apex.region("IG_MON").widget().interactiveGrid("getViews", "grid").model;



col_project = model.getFieldKey("COL_MON_PROJECT");

col_hours = model.getFieldKey("COL_MON_HOURS");

col_description = model.getFieldKey("COL_MON_DESCRIPTION");



model.forEach(function (igrow) {



   apex.item("P704_MON_PROJECT").setValue(igrow[col_project]);

   apex.item("P704_MON_HOURS").setValue(igrow[col_hours]);

   apex.item("P704_MON_DESCRIPTION").setValue(igrow[col_description]);



   apex.server.process('POPULATE_COLLECTION_MON', {

      pageItems: '#P704_MON_DATE,#P704_MON_PROJECT,#P704_MON_HOURS,#P704_MON_DESCRIPTION'

   }, {

      dataType: 'text',

      success: function (data) {

         if (data != 'SUCCESS');

      }

   });

});
EN

回答 2

Stack Overflow用户

发布于 2021-08-23 09:22:42

我用一些console.log消息解决了这个问题,并看到弹出的LOV正在解析为:

代码语言:javascript
复制
apex.item("P704_MON_PROJECT").setValue(igrow[col_project]) =
{v: "229592305603457980799039089331487048885", d: "My Project Name"}

我只需要把这个改成:

代码语言:javascript
复制
apex.item("P704_MON_PROJECT").setValue(igrow[col_project].v) =
229592305603457980799039089331487048885
票数 2
EN

Stack Overflow用户

发布于 2021-08-23 05:06:26

在js中从IG中获取值的DA很复杂,不知道如何使代码工作。但是,为了诊断js代码,您应该在浏览器控制台中手动运行它,并逐步查看它所做的事情,在那里您还可以了解对象对象的实际情况。

但是对于不同的方法,如果在每一列上创建一个单独的DA,您只需使用:COL_MON_PROJECT(或其他什么)来处理该列的值。

所以周一的桌子上会有三个DAs,一个用于项目,一个用于小时,另一个用于描述。每个都可能有一个动作集值,设置P704_MON_的值.和MON_..。

而且,根据我对您的代码的理解,您看起来使用的是单行交互网格,它填充页面项。为什么不整天只使用一个IG,然后在处理IG的过程中填充集合(如果集合仍然需要的话)。或者,如果你不想每天都要一个IG,为什么不单独填写每一天的页面项目呢?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68886977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档