Power Apps画布首页按钮映射Dataverse表的Power FX语法求助
Power Apps模型驱动应用画布按钮跳转Dataverse表单/视图问题解决
你在模型驱动应用的自定义画布首页中,尝试用Power FX让按钮跳转至Dataverse表(Productions)的表单,但现有代码无法生效。先看你现有代码的问题:
- 画布应用的
Navigate函数仅用于跳转画布内部页面,模型驱动应用中打开Dataverse的表单/视图需要用Launch函数配合应用深度链接。 Defaults('Productions (Forms)')是获取表的默认记录模板,不能作为导航参数使用。
以下是针对不同场景的正确代码:
1. 打开新建记录表单
如果按钮用于创建新的Productions记录,代码如下:
Switch( ThisItem.ButtonTitle, "Form", // 保留你原有的按钮标题文本 Launch( $"{App.LaunchUri}/main.aspx?appid={App.AppId}&pagetype=entityrecord&etn=productions&newWindow=true" ) )
App.LaunchUri:自动获取当前模型驱动应用的基础URL,无需硬编码App.AppId:动态获取当前应用的ID,避免环境切换后失效etn=productions:替换为你Dataverse表的逻辑名称(在表设置的"高级"选项卡中查看,不要用显示名称)pagetype=entityrecord:指定打开实体记录表单,不带ID参数时默认打开新建页面
2. 打开现有记录的表单
如果按钮绑定了具体的Productions记录,要打开对应记录的详情表单,代码修改为:
Switch( ThisItem.ButtonTitle, "Form", Launch( $"{App.LaunchUri}/main.aspx?appid={App.AppId}&pagetype=entityrecord&etn=productions&id={ThisItem.Id}" ) )
ThisItem.Id:替换为你绑定记录的ID字段引用(确保画布页面的数据源已正确关联Productions表)
3. 打开表的视图
如果需要跳转到Productions表的视图(比如默认视图),代码如下:
Switch( ThisItem.ButtonTitle, "View", // 对应视图按钮的标题 Launch( $"{App.LaunchUri}/main.aspx?appid={App.AppId}&pagetype=entitylist&etn=productions" ) )
pagetype=entitylist:指定打开实体列表视图- 若要打开特定视图,可添加
&viewid=视图GUID参数,视图GUID可从模型驱动应用的视图设置中复制
注意事项
- 确保画布页面已添加到模型驱动应用所在的解决方案中,且当前用户拥有Dataverse表的访问权限
- 确认表的逻辑名称正确,这是深度链接生效的关键
- 命令栏按钮的配置逻辑与画布按钮一致,只需将按钮的
OnSelect事件设置为对应代码即可
内容的提问来源于stack exchange,提问作者Gorkem Tunc
相关产品推荐
相关产品推荐

