动态将数据源绑定到应用制造商弹出窗口

时间:2018-11-02 08:52:54

标签: google-apps-script google-app-maker

我需要弹出一个通用的“删除确认”,并使用弹出窗口出现之前触发的事件将数据源动态绑定到弹出窗口。

单击“位置”页面上的删除图标将显示弹出窗口(如下所示)。我需要同时设置弹出窗口的数据源。 (当用户单击此删除图标时),并且必须在用户单击弹出窗口上的“删除”按钮时删除记录。

enter image description here

这是我目前用于上方删除图标的onclick事件的代码

app.popups.ItemDeleteConfirmationDialog.descendants.Content.datasource = widget.datasource;
app.popups.ItemDeleteConfirmationDialog.descendants.ConfirmButton.datasource = widget.datasource;
app.popups.ItemDeleteConfirmationDialog.visible=true;

这就是弹出窗口的onClick按钮的

widget.datasource.deleteItem();

请帮助我解决此问题。 谢谢。

1 个答案:

答案 0 :(得分:3)

以下是来自Google App Maker团队的某人的建议:

在“确认”弹出窗口中,设置动态类型的自定义属性。在此示例中,调用属性CallbackFn。

对于弹出窗口中ConfirmButton的onClick事件,请设置以下客户端脚本:

if (typeof widget.root.properties.CallbackFn === 'function') {
  widget.root.properties.CallbackFn();
}
widget.root.visible = false;

为数据源表中的删除按钮设置以下客户端脚本:

deleteItem(widget.datasource);

在“脚本”部分中,添加客户端脚本或在现有客户端脚本下插入以下功能:

function deleteItem(datasource) {
  var popup = app.popups.ItemDeleteConfirmationDialog;

  popup.properties.CallbackFn = function() {
    datasource.deleteItem();
  };

  popup.visible = true;
}

由于表中的删除按钮位于表行内,因此您可能需要更改传递给deleteItem()函数的函数变量,如下所示:

deleteItem(widget.parent.parent.datasource);

如果这不起作用,请告诉我。我已经在自己的应用程序中使用更加复杂的逻辑进行了此设置,并且在某些情况下将多个变量传递给我的deleteItem()函数,并且效果很好。