2

我通过称为 ID 的调用 URL 将参数传递给 PowerApp,即 https://web.powerapps.com/apps/ powerappid ?ID=32

当应用程序启动时,我希望它从列出所有业务案例的 BrowseScreen1 跳转,并直接转到具有匹配 ID(SharePoint 列表中的一个字段)的业务案例。

我是 PowerApps 的新手,但我很确定我需要做的是深度链接,我找到了本教程https://powerapps.microsoft.com/en-us/blog/powerapps-deep-linking/并阅读了对文章的评论我正在尝试将其应用于 BrowseScreen1 的 OnStart 属性。我真的不明白教程中的导航链接是如何构建的,所以我确定我使用了错误的导航参数,因为它总是启动列表中的第一条记录,而忽略了与 ID 相关的任何内容。我正在使用:

If(Not(IsBlank(Param("ID"))),Navigate(DetailScreen1, None,{ID:LookUp('Full Business Case For Review'.ID, ID = Value(Param("ID")))}) )

'Full Business Case For Review' 是 Sharepoint 列表的名称,ID 是分配给每个列表项的唯一字段。

本教程没有提到必须在详细信息屏幕上更改任何内容,但我也想知道是否需要更改当前的项目属性:

BrowseGallery1.Selected

我感觉超出了我的深度,非常感谢您对此的帮助!

谢谢,

约翰

4

1 回答 1

3

是的,您需要在详细信息屏幕中更改 Item 属性。这是因为目前无法在 PowerApps 中以编程方式选择库中的项目。

我通常通过使用全局变量来存储当前项目来解决这个问题,因此您可以将 BrowseSreen1.OnStart 设置为此

If(Not(IsBlank(Param("ID"))),
    Set(CurrentItem, LookUp('Full Business Case For Review'.ID, ID = Value(Param("ID"))));
        Navigate(DetailScreen1, None)
    )

这会将 ID 等于您的参数的项目存储为记录类型变量。

您还需要更改 BrowseGallery1 模板或用于导航到详细信息屏幕的任何控件的 OnSelect 属性。它需要是这样的

Set(CurrentItem, ThisItem); Navigate(DetailScreen1, None)

最后将详细屏幕中的 Item 属性简单地设置为此

CurrentItem
于 2017-11-24T08:37:55.260 回答