Power Apps 窗体的表单事件处理程序可以在窗体的以下区域配置:
| 元素 | 活动 | Description |
|---|---|---|
| 表格 | OnLoad |
在加载窗体时发生。 |
OnSave |
在保存数据时发生。 | |
| 选项卡 | TabStateChange |
在展开或折叠选项卡时发生。 |
| 列 | OnChange |
当列中的数据发生更改并且控件失去焦点时发生。 |
| IFRAME | OnReadyStateComplete |
IFRAME 内容加载时会发生此情况。 |
事件处理程序由对 JavaScript Web 资源的引用和在该 Web 资源中定义的函数组成,这些函数在事件发生时执行。 每个元素最多可以配置 50 个单独的事件处理程序。
重要
错误地配置事件处理程序可能会导致脚本错误,导致窗体无法正确加载或正常运行。 如果你不是脚本的开发人员,请确保确切地了解脚本所需的配置选项。
不要使用不来自你信任的源的库配置脚本事件处理程序。 脚本可用于执行用户可能执行的任何作,而编写不佳的脚本可能会严重损害表单的性能。
配置事件处理程序后,请始终对其进行测试以验证其是否正常工作。
配置事件处理程序
以下过程介绍如何为窗体配置事件处理程序。 使用类似的步骤为选项卡、列或 IFrame 配置事件处理程序。
登录到 Power Apps,打开所需的表,然后在要在其中配置事件处理程序的窗体设计器中打开窗体。
根据库状态,从以下选项中进行选择:
- 如果包含要设置为事件处理程序的函数的库已可用,请在 “帐户主”窗体下的右侧属性窗格中,选择“ 事件 ”选项卡,然后转到步骤 3。
- 如果包含所需函数的库尚不可用,请选择左侧导航窗格中的 “窗体库 ”,然后选择“ 添加库:
- 在 “添加 JavaScript 库 ”页上,选择“ 新建”。
- 在新浏览器选项卡中,完成创建 JScript Web 资源的属性,然后选择“ 保存”,然后选择“ 发布”。 详细信息: 创建 JavaScript Web 资源
- 关闭浏览器选项卡并返回到 “添加 JavaScript 库 ”列表。
- 从列表中选择 JavaScript Web 资源,选择“ 添加”,然后选择“ 事件 ”选项卡。
注释
可能需要选择“ 取消”,然后选择“ 添加库 ”以刷新列表。
- 在 “添加 JavaScript 库 ”页上,选择“ 新建”。
在“ 事件 ”选项卡上,选择 “事件处理程序 ”并完成以下信息以配置窗体事件,然后选择“ 完成”:
事件类型:
- 保存时:在窗体字段更改后保存记录。
- 加载时:表单打开时触发。
库:JavaScript Web 资源。
函数:应为事件执行的 JavaScript Web 资源中的函数的名称。
启用:默认情况下,事件处理程序处于启用状态。 如果不想启用此事件,请清除 “已启用 ”复选框。
将执行上下文作为第一个参数传递:某些函数需要将执行上下文传递给函数。 如果需要,请选择传递执行上下文作为第一个参数。
将传递给函数的参数的逗号分隔列表:某些函数可以接受一组参数来控制函数的行为。 参数列表可以包含由 JavaScript 脚本语言允许的函数参数接受的变量或其他函数。 如果需要传入参数,请在 要传递给函数的参数的逗号分隔列表中输入这些参数。
表列依赖关系:针对保存时事件,选择记录保存后需触发事件的列。
保存,然后 发布 窗体。
onload 事件的示例 hello world
本简单示例演示如何使用事件处理程序中单个已定义变量的参数传递来配置 onload 窗体事件,该变量在窗体加载时显示警报。
- 使用 Hello world JavaScript 示例创建 Web 资源。 详细信息: 创建或编辑模型驱动应用 Web 资源以扩展应用
- 打开表主要窗体,在窗体设计器中进行编辑。 此示例使用 Student 自定义表主窗体。
- 在左侧“信息”窗格中,选择“ 事件 ”选项卡。
- 选择 “添加库”,选择创建的 Web 资源(在此示例中,资源名为 javascript-hello-world),然后选择“ 添加”。
- 选择加载时将其展开,然后选择事件处理程序。
- 在 “配置事件 ”窗格中,输入 函数 名称(在此示例中, helloworld),然后在 将传递给函数框的参数的逗号分隔列表中 输入一个参数,例如
n = "Hello world!"。
- 选择“完成”。
- 保存并发布 表单。
通过运行包含表单的模型驱动应用来测试事件。 当主窗体加载时,警报会显示模式对话框消息“Hello world!”对于此示例,用户必须选择 “确定 ”以消除警报以继续使用窗体。
Hello world JavaScript 示例
function helloworld(n) {
alert(n);
}
使用经典体验配置事件处理程序
在经典表单编辑器中,选择包含要为其配置处理程序的事件的元素。
在 主页 选项卡的 编辑 组中,选择 更改属性 或直接双击该元素。
在元素属性对话框中,选择 Events 选项卡。
展开 Form Libraries 区域。 如果包含要设置为事件处理程序的函数的库尚未列出,请添加该库。
要将表单库添加到事件处理程序中:
在 Event List 的 Form Libraries 部分中,选择 Add.
在可用 Web 资源列表中找到 JavaScript Web 资源。 选择它,然后选择 Add。
如果所需的 JavaScript Web 资源不存在,请选择“ 新建 ”以打开新的 Web 资源窗体并创建一个。
若要创建 JavaScript Web 资源,请参阅 “创建 JavaScript Web 资源”。
现在,您创建的 Web 资源已被选中,在 查找行 对话框中。 选择 Add 以关闭对话框。
在 Event Handlers (事件处理程序) 部分中,选择要为其设置事件处理程序的事件。
选择 Add 以打开 Handler Properties 对话框。
在“ 详细信息 ”选项卡上,选择相应的库并键入应为事件执行的函数的名称。
默认情况下,事件处理程序处于启用状态。 如果您不想启用此事件,请清除 Enabled 复选框。
某些函数需要将执行上下文传递给函数。 如果需要,请选择传递执行上下文作为第一个参数。
某些函数可以接受一组参数来控制函数的行为。 如果需要,请在 要传递给函数的参数的逗号分隔列表中输入这些参数。
在“ 依赖项 ”选项卡上,将脚本依赖的任何列添加到 “依赖列” 区域中。
选择确定以关闭处理程序属性对话框。
输入事件处理程序后,可以使用绿色箭头向上或向下移动函数来调整函数相对于任何其他函数执行的顺序。
选择 确定 关闭元素属性对话框。
选择 保存 以保存更改。 选择 发布 以发布表单。
注释
虽然用户界面 (UI) 允许您使用向上和向下绿色箭头来调整脚本的加载顺序,但脚本实际上并不是按顺序加载的。
创建 JavaScript Web 资源
在 Web 资源表单中,设置以下属性:
资产 价值 Name 必需。 键入 Web 资源的名称。 显示名称 必需。 键入要在 Web 资源列表中显示的名称。 Description 可选。 键入 Web 资源的描述。 类型 必需。 选择 Script(JScript)。 语言 可选。 选择适用于您的组织的一种语言。 如果您已获得脚本,我们强烈建议您使用 Browse 按钮找到文件并上传它。
或者,您可以选择 Text Editor 按钮,然后在 Edit Content 对话框中粘贴或键入脚本的内容。
注释
由于这个简单的文本编辑器不提供任何功能来检查脚本的正确性,因此通常应始终尝试使用 Visual Studio 等单独的应用程序来编辑脚本,然后上传它们。
- 选择“ 保存 ”并关闭 Web 资源页。