我在oracle apex中基于员工表创建了可编辑的交互式网格。在 IG 中,我有多个列,例如 ename、salary 和 comm。我想根据薪水的值动态地使 comm 列只读。例如,如果工资列中的值为 2000 或更少,则通讯列应变为只读。我已经编写了代码来实现此功能,但代码没有按我想要的方式工作。让我与你分享代码
var salValue = apex.region("mygrid").call.getSelectedRecords()\[0\].get("SAL");
var commColumnId = "COMM"; // COMM 列的静态 ID 或列名
// Get the interactive grid model
var igModel = apex.region("mygrid").call.model;
// 迭代网格模型中的每一行 igModel.forEach(函数(记录) { var commCell = record.getCellValue(commColumnId);
// Check if SAL value is <= 2000
if (salValue <= 2000) {
// Set COMM column to readonly
commCell.attributes.readOnly = true;
} else {
// Set COMM column to editable
commCell.attributes.readOnly = false;
}
});
// 刷新交互式网格以应用更改 apex.region("mygrid").call.refresh(); 第一行返回错误不是函数
创建一个函数并传递工资作为参数,并根据条件返回 Y 或 N,然后转到交互式网格列属性只读选择表达式,然后使用函数 this 'Y' =is_readonly(:salary);