我需要弹出一个通用的“删除确认”,并使用弹出窗口出现之前触发的事件将数据源动态绑定到弹出窗口。
单击“位置”页面上的删除图标将显示弹出窗口(如下所示)。我需要同时设置弹出窗口的数据源。 (当用户单击此删除图标时),并且必须在用户单击弹出窗口上的“删除”按钮时删除记录。
这是我目前用于上方删除图标的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();
请帮助我解决此问题。 谢谢。
答案 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()函数,并且效果很好。