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

Oracle APEX交互式网格行还原:JS API初始失效问题求助

问题描述

在Oracle APEX的动态动作中尝试使用JavaScript API,根据特定条件还原交互式网格(Interactive Grid)的行更改,执行代码如下:

apex.region("PRODS").call("getActions").invoke("row-revert");

apex.region("PRODS").call("getActions").invoke("selection-revert");

初始执行该代码时无效,但先选中其他行再选中目标行后,在控制台手动运行代码可成功还原行更改。

解决方案

1. 直接定位目标行并还原(不依赖选中状态)

row-revert和selection-revert默认依赖当前选中的行,动态动作执行时可能未正确选中目标行。可以跳过选中逻辑,直接通过模型对象定位并还原目标行:

// 获取交互式网格的模型对象
const igModel = apex.region("PRODS").call("getViews").grid.model;

// 遍历行数据,筛选符合条件的目标行(示例:根据ID字段匹配)
igModel.forEach(row => {
    if (row.data.ID === 123) { // 替换为你的业务条件
        // 还原该行的所有修改
        igModel.revert(row);
        // 刷新网格视图,同步显示还原结果
        apex.region("PRODS").call("refresh");
    }
});

2. 先选中目标行再执行还原动作

如果必须使用row-revert或selection-revert动作,需确保执行前目标行已被选中:

const igRegion = apex.region("PRODS");
const igGrid = igRegion.call("getViews").grid;
const igModel = igGrid.model;

// 查找符合条件的目标行
const targetRow = igModel.find(row => row.data.ID === 123); // 替换为你的条件

if (targetRow) {
    // 清除现有选中状态,避免干扰
    igGrid.selection.clear();
    // 选中目标行
    igGrid.selection.add(targetRow);
    // 执行还原动作
    igRegion.call("getActions").invoke("row-revert");
}

3. 确保动态动作的执行时机正确

动态动作可能因网格未完全初始化或数据未加载完成导致失效,可调整触发时机:

  • 将动态动作的执行时机设置为After Refresh(若依赖网格数据刷新事件)
  • 或通过延迟执行确保网格就绪:
setTimeout(() => {
    const igRegion = apex.region("PRODS");
    const targetRow = igRegion.call("getViews").grid.model.find(row => row.data.ID === 123);
    if (targetRow) {
        igRegion.call("getViews").grid.selection.add(targetRow);
        igRegion.call("getActions").invoke("row-revert");
    }
}, 500); // 延迟时间可根据实际场景调整

4. 校验行的修改状态

只有已修改的行才能被还原,可提前判断避免无效操作:

const igModel = apex.region("PRODS").call("getViews").grid.model;
const targetRow = igModel.find(row => row.data.ID === 123);

if (targetRow && igModel.isChanged(targetRow)) {
    igModel.revert(targetRow);
    apex.region("PRODS").call("refresh");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 16:32:57