Apex交互式网格仅保留两列可编辑,其余设为只读的实现问题
Oracle Apex交互式网格仅指定列可编辑的解决方案
方法1:列属性直接设置(推荐)
- 打开交互式网格的列属性面板
- 针对要设为只读的列:
- 找到编辑类型,选择
只读(别选“仅显示”——这个只是报表视图不显示编辑控件,编辑模式下还是能改) - 留空服务器端条件,确保报表里能看到该列内容
- 找到编辑类型,选择
- 要可编辑的列,把编辑类型设为对应类型(比如
文本字段、选择列表)
方法2:通过编辑配置批量设置
- 进入交互式网格的编辑属性页签
- 确认允许的操作只保留必要项(比如
更新) - 点击列子页签,批量配置:
- 勾选可编辑列的可更新选项
- 取消其余列的可更新勾选
方法3:JavaScript强制锁定(复杂场景用)
如果上面的方法没生效,加一段页面加载时执行的JS代码:
// 替换成你的交互式网格静态ID var ig = apex.region("IG_STATIC_ID").widget().interactiveGrid("getViews", "grid"); // 遍历所有列,只让COLUMN1和COLUMN2可编辑 ig.model.getColumns().forEach(function(col) { if (col.name !== 'COLUMN1' && col.name !== 'COLUMN2') { col.editable = false; } }); ig.viewGrid("refresh");
记得把IG_STATIC_ID换成你的网格静态ID,COLUMN1、COLUMN2换成可编辑列的数据库列名。
解决编辑弹窗的问题
如果点行编辑时弹出的表单里还能改只读列:
- 打开交互式网格的编辑→表单子页签
- 找到弹窗里的只读列,把编辑类型设为
只读,或者勾选隐藏(不需要显示的话)
内容的提问来源于stack exchange,提问作者Surbhi Jain
相关产品推荐
相关产品推荐

