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

为什么通过JavaScript Model接口设置的Interactive Grid值无法保存

问题根因

你遇到的IG粘贴数据无法保存的问题,核心是两个错误导致的:

  • 空值处理逻辑错误:你直接对粘贴内容执行Number(value)转换,当粘贴空单元格时,Number("")返回无效值NaN,提交到数据库时会被识别为null
  • 未标记脏数据:APEX Interactive Grid的模型setValue方法不会自动将修改后的记录标记为「需要提交的已变更记录」,只有用户手动修改时IG会自动添加变更标记,默认保存进程只会提交带变更标记的记录,所以你的JS修改被保存进程忽略了

修复方案

第一步:修正代码逻辑

只需要修改你原来onPaste函数中model.setValue相关的逻辑,补充空值处理和变更标记即可:

// 原代码逻辑保留,仅替换setValue部分的代码
if (model.allowEdit(record)) {
  // 兼容空值:空单元格直接存null,避免转成NaN
  const parsedValue = value.trim() === '' ? null : Number(value);
  model.setValue(record, column.property, parsedValue);
  // 手动标记记录已修改,让保存进程识别到变更
  model.markChanged(record);
}

第二步:检查静态ID拼写

你描述中IG的静态ID为EmployeeGrid,但代码中引用的是apex.region("EmployeesGrid"),多了一个字母s,如果实际静态ID和代码引用不一致,也会导致变更不生效,请确认两者拼写完全一致。

验证方法

修改后重新测试粘贴功能:粘贴完成后观察IG行首是否出现橙色的修改标记(手动修改时的提示标记),如果出现标记再点击保存,数据就能正常写入数据库了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:24:03