You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle APEX 如何通过JavaScript获取交互式网格Popup LOV列的返回值

Oracle APEX 21.1 IG Popup LOV取值异常解决方案

问题根因

Interactive Grid的Popup LOV类型列在IG数据模型中存储的是结构化对象,默认格式为{v: 配置的返回值ID, d: 页面显示的项目名称},你直接将整个对象赋值给页面项,转换为字符串后就会出现[object Object]的异常结果。

修正代码

仅需调整项目列的赋值逻辑,提取对象中的返回值属性v即可,同时增加空值兼容逻辑避免报错:

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) {
   // 仅提取LOV的返回值ID,兼容空值场景
   apex.item("P704_MON_PROJECT").setValue(igrow[col_project]?.v ?? '');
   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') {
             // 可自行补充错误提示逻辑
         }
      }
   });
});

可选优化建议

  • 当前逻辑逐行发起AJAX请求,若IG行数较多可先把所有行数据拼接为JSON数组,一次性传给后端AJAX进程批量插入集合,降低请求开销。
  • 作为中间传值载体的页面项可设置为隐藏类型,无需在页面渲染。

内容的提问来源于stack exchange,提问作者Mandy Walsh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 21:06:04