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

Oracle Apex 23交互式网格:JS按字段名取数据及getViews调用疑问

在JavaScript中获取Oracle Apex 23交互式网格行数据及API调用说明

一、通过字段名获取所有行数据

你的示例代码无效是因为未正确访问交互式网格的数据模型。正确步骤是先获取网格视图,再通过数据模型获取行数据,即可直接用字段名访问值,有效代码如下:

// 获取目标交互式网格区域
let gridRegion = apex.region('myGridStaticID');
// 获取网格的表格视图实例
let gridView = gridRegion.widget().interactiveGrid("getViews", "grid");
// 获取所有行的数据记录数组
let rows = gridView.model.getRecords();

// 遍历行数据,通过字段名访问对应值
rows.forEach(row => {
    console.log(row.COLUMN1); // 替换为网格实际定义的列名
    console.log(row.COLUMN3); // 注意列名区分大小写
});

补充说明:

  • model.getRecords() 返回的数组中,每个元素是对应行的对象,直接通过网格定义的列名(需完全匹配)访问字段值;
  • 若需获取未提交的修改数据,可使用model.getUpdatedRecords()或model.getDirtyRecords()方法。

二、关于getViews方法的调用差异

你遇到的调用差异源于Apex API的层级划分:

  • 无效的apex.region("[region static ID]").getViews():apex.region()返回的是区域对象,该对象本身没有getViews方法,这个方法属于交互式网格组件的专属API;
  • 有效的apex.region("[region static ID]").widget().interactiveGrid("getViews", "grid"):
    1. widget() 方法用于从区域对象中获取底层的jQuery UI组件实例;
    2. interactiveGrid("getViews", "grid") 是遵循jQuery UI插件的调用模式,调用交互式网格的方法,第二个参数"grid"指定获取表格类型的视图(交互式网格的默认视图)。

该有效调用方式在官方文档中有间接说明:

  • 文档明确apex.region().widget()用于获取区域对应的jQuery组件;
  • 交互式网格的方法调用需通过interactiveGrid(methodName, args)格式,getViews属于这类方法,传入"grid"参数可获取表格视图实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 06:13:27