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

如何在App Maker数据源中手动设置当前项?

在App Maker中手动设置数据源当前项的解决方案

我完全懂你的痛点——表格里只有编辑字段时才会自动把行项设为当前项,悬停点击链接时就失效了对吧?核心问题在于:编辑操作触发了表格行的「选中/激活」事件,自动绑定了当前项,但单纯的悬停+点击链接并没有触发这个逻辑,所以得手动通过代码来补全这个流程。

这里给你两种实用的解决方法:

方法一:给链接添加点击事件,点击时直接设置当前项

这是最直接的方式,在链接的onClick事件里添加以下代码:

// 获取当前行对应的数据源项
var targetItem = widget.parent.parent.datasource.item;
// 把该项设置为目标数据源的当前项(如果跳转到其他页面,这里填目标页面绑定的数据源)
app.datasources.YourTargetDatasource.selectItem(targetItem);
  • 解释下widget.parent.parent:因为链接是放在表格行的模板组件里,往上两层就能找到行组件,它的datasource.item就是当前行对应的记录。如果你的组件嵌套层级不同,可以在App Maker的组件树里确认路径,调整parent的层数。
  • 要是跳转页面用的和当前表格是同一个数据源,代码可以简化成:
var targetItem = widget.parent.parent.datasource.item;
widget.parent.parent.datasource.selectItem(targetItem);

方法二:给表格行添加鼠标悬停事件,提前设置当前项

如果你希望用户悬停在行上时就自动把该行设为当前项,那可以给表格的行组件添加onMouseOver事件,代码如下:

var rowItem = widget.datasource.item;
widget.datasource.selectItem(rowItem);

这样用户悬停时就已经把行项设为当前项了,点击链接跳转时,目标页面的datasource.item自然就是这个项。

注意事项

  • 确保你的数据源开启了「允许选择项」的设置(在数据源配置面板里能找到这个选项),不然selectItem()方法会失效。
  • 测试时可以用App Maker的调试工具,打印targetItem看看是否正确获取到了行记录,避免组件路径错误导致取不到数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:47:42