PowerApps多步骤表单创建方法及onSuccess未触发问题排查
多步骤表单OnSuccess事件未触发问题
我们正在开发一款面试工具,采用多步骤表单,当前用Google Sheets作为数据源,插入数据的步骤如下:
- 添加按钮:OnSelect属性设为
Set(varFormMode, Defaults(datasourcename)) - 最后一步保存按钮:OnSelect属性设为
Patch(datasourcename,varFormMode,form1.Updates, form2.Updates) - 表单1和表单2的Item属性均设为
varFormMode - 最后一步的表单2:OnSuccess属性设为
Notify("Candidate added successfully",NotificationType.Success,1000); Navigate(adm_dashboard_screen,ScreenTransition.CoverRight);ResetForm(Form11);ResetForm(Form10)
实际问题:记录已成功插入到数据源,但表单提交后OnSuccess()方法未自动执行。
问题原因
OnSuccess是表单控件的专属事件,仅当通过表单的SubmitForm()方法提交数据时才会触发。直接调用Patch操作数据源,不会触发表单的OnSuccess事件,这就是问题的核心原因。
解决方案
方案1:改用SubmitForm提交(推荐)
- 保留添加按钮的
Set(varFormMode, Defaults(datasourcename))设置 - 将最后一步保存按钮的OnSelect属性修改为:
SubmitForm(Form2) - 确保Form2的
Item属性为varFormMode,同时将Form1的更新同步到提交上下文:- 可在导航至Form2页面时,先合并Form1的更新到
varFormMode:Set(varFormMode, Patch(varFormMode, Form1.Updates)); Navigate(Form2Screen) - 或在Form2的
OnSubmit属性中先处理Form1的更新:Patch(datasourcename, varFormMode, Form1.Updates)
- 可在导航至Form2页面时,先合并Form1的更新到
- 保持Form2的
OnSuccess属性不变,此时通过SubmitForm(Form2)提交后,会自动触发OnSuccess事件。
方案2:手动执行原OnSuccess逻辑
若坚持使用Patch,可直接在保存按钮的OnSelect属性末尾追加原OnSuccess中的操作:
Patch(datasourcename,varFormMode,form1.Updates, form2.Updates); Notify("Candidate added successfully",NotificationType.Success,1000); Navigate(adm_dashboard_screen,ScreenTransition.CoverRight); ResetForm(Form11); ResetForm(Form10)
这种方式无需依赖表单的OnSuccess事件,直接在Patch执行完成后手动触发后续逻辑。
内容的提问来源于stack exchange,提问作者Suruchi
相关产品推荐
相关产品推荐

