You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何通过列值动态选择Interactive Grid行?代码输出undefined

问题:JS动态选中Interactive Grid行失败,变量输出undefined

我希望通过向JS动态动作传入列值CSV,实现动态选择Interactive Grid的行。目前已编写了一段代码,但运行时无报错却无法选中行,所有console.log输出均为undefined,包括targetValues数组元素和循环中的columnValue。恳请提供帮助,哪怕能正常输出目标变量值也可。

原代码

var columnName = 'CRITERIA_ID';
var targetValues = $v("P13_SELECTED_VALUES").split(";");
//P13_SELECTED_VALUES is set to 112:113:115 via a static assignment DA that occurs directly before this 
console.log(targetValues[1]);
console.log(targetValues[2]);
console.log(targetValues[3]);

var ig$ = apex.region("myIG_StaticID").widget();
var view = ig$.interactiveGrid("getCurrentView");

view.model.forEach(function(record) {
  var columnValue = view.model.getValue(columnName, record);
  console.log("Column Value: " + columnValue);

  if (targetValues.includes(columnValue)) {
    view.grid.selection.add(record);
  }
});

问题分析与修复

1. targetValues数组元素undefined的原因

注释里明确P13_SELECTED_VALUES的值是112:113:115,但代码里用split(";")分割,导致整个字符串被当成一个数组元素,targetValues[1]、targetValues[2]、targetValues[3]自然不存在,输出undefined。

2. columnValue输出undefined的原因

Interactive Grid的model.getValue方法参数顺序错误,正确顺序是先传record,再传列名,原代码把列名放在前面,导致无法正确获取字段值。

修正后的代码

var columnName = 'CRITERIA_ID';
// 替换分割符为冒号,匹配P13_SELECTED_VALUES的格式
var targetValues = $v("P13_SELECTED_VALUES").split(":");
console.log(targetValues[0]); // 输出112
console.log(targetValues[1]); // 输出113
console.log(targetValues[2]); // 输出115

var ig$ = apex.region("myIG_StaticID").widget();
var view = ig$.interactiveGrid("getCurrentView");

view.model.forEach(function(record) {
  // 修正getValue参数顺序:record在前,列名在后
  var columnValue = view.model.getValue(record, columnName);
  console.log("Column Value: " + columnValue);

  // 若CRITERIA_ID是数字类型,需转类型避免匹配失败
  // var targetValues = $v("P13_SELECTED_VALUES").split(":").map(Number);
  if (targetValues.includes(columnValue)) {
    view.grid.selection.add(record);
  }
});

额外检查点

  • 确认myIG_StaticID是Interactive Grid的正确静态ID,核对页面设计中的设置。
  • 确认赋值P13_SELECTED_VALUES的DA确实在这段JS代码之前执行,检查DA的触发顺序和执行条件。
  • 如果CRITERIA_ID是数字类型,需要将targetValues中的字符串转为数字(代码中已注释相关转换逻辑),避免类型不匹配导致includes判断失败。

内容的提问来源于stack exchange,提问作者Jason Bourne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 10:27:31