Oracle Apex Interactive Grid 实现指定列所有行统一赋值需求咨询
Oracle APEX 交互式网格(IG)批量赋值按钮实现方案
以下是实现点击按钮批量填充IG指定列所有行值的完整操作步骤:
1. 创建页面触发按钮
在IG所在页面新增按钮,按钮动作选择执行JavaScript,无需设置跳转逻辑。
2. 编写业务逻辑代码
将以下代码粘贴到按钮的JavaScript执行框中,替换对应占位参数即可:
// 调用APEX原生弹窗获取用户输入 apex.message.prompt("请输入要批量填充的值:", function(inputVal) { // 非空校验 if (!inputVal || inputVal.trim() === "") return; // 获取IG实例,替换为你自己的IG静态ID const ig = apex.region("替换为你的IG静态ID").widget().interactiveGrid("getViews", "grid"); const igModel = ig.model; // 遍历所有行赋值,替换为你要填充的列的数据源字段名 igModel.getRecords().forEach(record => { igModel.setValue(record, "替换为目标列的数据源字段名", inputVal.trim()); }); }, "批量填充确认");
注意提前确认目标IG列已经开启编辑权限,否则赋值操作不会生效。
如果你不需要适配APEX主题,用浏览器原生弹窗也可以,简化代码如下:
const inputVal = prompt("请输入要批量填充的值:"); if (inputVal === null || inputVal.trim() === "") return; const ig = apex.region("替换为你的IG静态ID").widget().interactiveGrid("getViews", "grid"); ig.model.getRecords().forEach(record => { ig.model.setValue(record, "替换为目标列的数据源字段名", inputVal.trim()); });
3. 效果验证
配置完成后点击按钮,在弹窗输入要填充的内容确认后,IG对应列的所有行都会自动填充为输入值,修改后的数据和手动编辑的IG数据逻辑一致,可直接提交保存到数据源。
内容的提问来源于stack exchange,提问作者NoOneDer
相关产品推荐
相关产品推荐

