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

Oracle APEX交互式网格获取修改后单元格当前值问题

解决Interactive Grid获取修改后单元格值的问题

在Oracle APEX的Interactive Grid中,直接通过record.getValue()或索引获取字段值时,默认返回的是提交到服务器的原始值,不会包含客户端未保存的修改。要获取修改后的当前值,需要调整取值方式:

解决方案代码

// 获取Interactive Grid的grid视图与model
var gridView = apex.region("PAYEMNTDetails").widget().interactiveGrid("getViews", "grid");
var model = gridView.model;

// 获取选中的记录
var selectedRecords = model.getSelectedRecords();

if (selectedRecords && selectedRecords.length > 0) {
    var targetRecord = selectedRecords[0];
    var targetField = "CURRENCYID"; // 替换为你的实际字段名
    
    // 优先获取未提交的修改值,无修改则返回原始值
    var updatedCurrencyId = model.getValue(targetRecord, targetField, {uncommitted: true});
    
    // 可选:如果要捕获正在编辑中的实时值(比如单元格未失去焦点时)
    // var activeCell = gridView.getActiveCell();
    // if (activeCell && activeCell.columnName === targetField && activeCell.recordId === targetRecord.id) {
    //     updatedCurrencyId = gridView.getCellValue(activeCell);
    // }
    
    console.log("修改后的CurrencyId:", updatedCurrencyId);
} else {
    console.log("未选中任何行。");
}

关键说明

  1. 核心调整:使用model.getValue(record, fieldName, {uncommitted: true}),第三个参数uncommitted: true会让方法优先读取客户端未提交的修改值,没有修改时才返回原始值,这是适配所有编辑状态的通用方案。
  2. 实时编辑值捕获:如果你的动态动作是在单元格编辑过程中触发(比如按键事件),可以通过gridView.getActiveCell()定位当前编辑单元格,再用gridView.getCellValue()获取实时输入值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 14:37:10