如何在 Google App Maker 中打开特定记录的对话框或页面?
How do I open a dialog or page to a specific record in Google App Maker?
我在 Google App Maker 的 table 条记录的每一行上都有一个 "edit" 按钮。
当用户单击此按钮时,我希望打开的 dialog/page 编辑用户单击的记录。
理想情况下,答案将适用于 showDialog()
函数。
尝试创建一个页面片段(例如,命名为 "EditDialog"),使用与您的 table 相同的数据源。然后将此页面片段设置为点击编辑按钮时打开:
app.showDialog(app.pageFragments.EditDialog);
Table点击应该会自动select那一行数据,所以这个应该够用了。在某些情况下,我注意到 selection 发生得太晚了,之前 selected 的记录可能会在对话框中使用。
在这种情况下,您可能必须确保 selection 在对话框打开之前确实发生了。如果我没记错的话,下面的意义(如 onClick)使它对我有用(虽然这可能不是一个聪明的解决方案):
var key = widget.datasource.item._key;
widget.datasource.selectKey(key);
app.showDialog(app.pageFragments.EditDialog);
希望对您有所帮助!
编辑:我发现,当您将 selection 连接到数据源时,不是通过您正在单击的那个小部件,而是通过其父级或直接连接到数据源(app.datasources.ArbitraryDatasource.selectKey(键);).
我在 Google App Maker 的 table 条记录的每一行上都有一个 "edit" 按钮。
当用户单击此按钮时,我希望打开的 dialog/page 编辑用户单击的记录。
理想情况下,答案将适用于 showDialog()
函数。
尝试创建一个页面片段(例如,命名为 "EditDialog"),使用与您的 table 相同的数据源。然后将此页面片段设置为点击编辑按钮时打开:
app.showDialog(app.pageFragments.EditDialog);
Table点击应该会自动select那一行数据,所以这个应该够用了。在某些情况下,我注意到 selection 发生得太晚了,之前 selected 的记录可能会在对话框中使用。
在这种情况下,您可能必须确保 selection 在对话框打开之前确实发生了。如果我没记错的话,下面的意义(如 onClick)使它对我有用(虽然这可能不是一个聪明的解决方案):
var key = widget.datasource.item._key;
widget.datasource.selectKey(key);
app.showDialog(app.pageFragments.EditDialog);
希望对您有所帮助!
编辑:我发现,当您将 selection 连接到数据源时,不是通过您正在单击的那个小部件,而是通过其父级或直接连接到数据源(app.datasources.ArbitraryDatasource.selectKey(键);).