页面加载时根据显示的交互式网格设置APEX项,值仅客户端生效的问题求助
页面加载时根据显示的交互式网格设置APEX项,值仅客户端生效的问题求助
各位APEX开发者们好,我现在碰到一个头疼的问题,想请大家帮忙分析下:
我需要在页面加载完成后,根据当前显示的交互式网格(IG)中的STATUS字段值,自动设置页面项P1_ERROR_FLAG或P1_WARN_FLAG的值。目前的代码在客户端控制台里看起来一切正常——能正确找到显示的IG,能遍历到STATUS字段的有效值,也能看到apex.item().setValue()执行后控制台里的项值是对的,但这个值只存在于客户端,服务器端并没有同步保存。只有当我手动重新提交页面之后,P1_ERROR_FLAG/P1_WARN_FLAG的值才会真正被服务器端存储下来,这导致后续依赖这些项的服务器端逻辑在页面初始加载时无法正常工作。
以下是我当前使用的代码:
var gridIds = ["IG1", "IG2", "IG3", "IG4", "IG5", "IG6"]; var found = false; // Loop through grid IDs to find the visible one for (var i = 0; i < gridIds.length; i++) { var regionId = gridIds[i]; var region = apex.region(regionId); // Check if region exists and is visible if (region && region.widget().is(":visible")) { var ig$ = region.widget(); var model = ig$.interactiveGrid("getViews", "grid").model; var fieldKey = model.getFieldKey("STATUS"); model.forEach(function(record) { var value = record[fieldKey]; console.log("Field value:", value); if (value === 'ERROR') { found = true; apex.item("P1_ERROR_FLAG").setValue("ERROR"); return false; // break loop } else if (value === 'WARN') { found = true; apex.item("P1_WARN_FLAG").setValue("WARN"); return false; // break loop } }); break; // exit loop after handling the visible grid } } console.log("Value exists:", found);
我已经排查了这些点:
- 能正确定位到当前显示的IG区域
- 能成功获取到IG的model和STATUS字段的key
- 控制台能输出正确的STATUS字段值,
found变量也能正确返回true apex.item().setValue()执行后,在控制台里查看项值是正确的
但就是页面初始加载时,设置的项值没有同步到服务器端。有没有大佬知道问题出在哪?或者有没有办法在页面加载时,把通过JS设置的项值直接同步到服务器端呢?
内容来源于stack exchange
相关产品推荐
相关产品推荐

