Oracle APEX:能否通过编程勾选/取消勾选指定行的APEX$ROW_SELECTOR
交互式网格(IG)按列值批量控制行选择器状态
完全可行,你可以通过Oracle APEX提供的IG模型API实现这个需求。你的代码目前只遍历了已选中的记录,若要处理所有行的勾选状态,需要调整为遍历全部记录,再通过setSelected方法控制选中状态,完整代码如下:
// 获取IG的模型实例 var model = this.data.model; // 获取IG的所有行记录 var allRecords = model.getRecords(); // 遍历每一行 for (let i = 0; i < allRecords.length; i++) { // 获取当前行FIELD1列的值 let testVar = model.getValue(allRecords[i], "FIELD1"); // 根据列值设置行选中状态 if (testVar === 'Test') { // 勾选行选择器 model.setSelected(allRecords[i], true); } else { // 取消勾选行选择器 model.setSelected(allRecords[i], false); } } // 可选:触发选中状态变更事件,确保IG界面同步更新 model.fireSelectionChange();
关键说明
- 用
model.getRecords()获取所有行记录,而非仅已选中的selectedRecords,这样能覆盖所有行的状态控制 model.setSelected(record, isSelected)是核心方法,第二个参数传true勾选,false取消勾选- 变量声明使用
let避免全局变量污染 - 最后调用
fireSelectionChange()可以确保IG界面及时同步选中状态的变更
内容的提问来源于stack exchange,提问作者Coding Duchess
相关产品推荐
相关产品推荐

