google-app-maker - 如何使弹出数据反映选定的记录?
问题描述
案子:
我有活动作为数据模型。
我已将活动设置为与自身具有多对多关系以表示父/子关系。
我已经设置了一个手风琴小部件。手风琴的每一行都包含有关活动记录的基本数据+一些按钮。
我已经设置了按钮的一个 onClick 函数来打开一个弹出窗口,它允许我在表单中编辑活动详细信息。
当我从同一个手风琴中单击不同的记录时,弹出窗口中的表单会反映所选记录中的数据。
问题:
我嵌套了代表父活动的“子”活动的手风琴。
我还添加了一个类似的按钮,它会打开一个弹出窗口。我可以打开以子记录为目标的弹出窗口,但无法打开我按下按钮的特定记录。
所以弹出窗口默认在第一个孩子上打开。
请帮助-如何使弹出窗口自然地更改以反映甚至嵌套数据源的数据源/选定记录?
我尝试了什么:
为了尝试弹出工作,我尝试根据关系设置数据源:
活动:子活动(关系)
这在显示相关项目的范围内有效,但弹出内容不会在单击不同的子记录或单击来自不同子记录的按钮时动态更改。
在这两种情况下,显示的是第一个子记录。
解决方案
我的理解是,您有一个设置,您可以在其中单击一个按钮并显示一个弹出窗口。弹出窗口应允许您查看/编辑按钮所在行中引用的记录。如果是这种情况,那么您可能已经为接下来的工作做好了几乎所有的设置。首先,向弹出窗口添加一个字符串自定义属性并将其命名为selectedKey。然后,在打开弹出窗口的按钮的onClick事件上,添加如下内容:
var key = widget.datasource.item._key;
app.popups.MYPOPUP.properties.selectedKey = key;
app.popups.MYPOPUP.visible = true;
现在,转到弹出内容并在onAttach事件处理程序上添加以下内容:
var key = widget.root.properties.selectedKey;
widget.datasource.selectKey(key);
这是如何使其工作的总体思路;但是,为了使其正常工作,您应该正确设置小部件中的数据源。祝你好运!