PeoplePicker Control(预览版)

[本文为预发布文档,可能会发生变化。]

用于创建加载体验的控件。

备注

GitHub 代码组件存储库中的完整文档和源代码。

PeoplePicker 控件。

重要提示

  • 这是一项预览功能。
  • 预览功能不适合生产使用且功能可能受限。 这些功能在正式发布之前推出,以便客户可以提前使用并提供反馈。

说明

人员选取器 (PeoplePicker) 用于从列表中选择一个或多个实体,如人员或组。 如果您不知道某人的全名或电子邮件地址,可以轻松向他撰写电子邮件,或者将他添加到组中。

此代码组件提供了一个围绕 Fluent UI PeoplePicker 控件的包装器,用于画布和自定义页面。 请参阅组件文档了解最佳做法。

键属性

属性 说明
Items 显示在 Peoplespecker 上的预选角色(成员)
Suggestions_Items 要从中选择的建议成员列表。 这是必需的数据集属性
PeoplePickerType 要使用的 Peoplepicker 类型。
MaxPeople 允许选择的最大用户数
NoResultFoundMesage 根据指定的搜索文本未找到结果时将显示的消息。
MinimumSearchTermLength 提供建议前输入的最小搜索词长度。
SearchTermToShortMessage 当搜索文本小于 MinimumSearchTermLength 时显示的自定义消息。
Error 以红色突出显示人员选择器来表示其存在需要验证的特定错误。
ShowSecondaryText 根据是否显示辅助文本(例如,JobTitle)指定“是”或“否”。

Items 性能

属性 说明
PersonaName 角色的显示名称。
PersonaKey 此键标识特定项目。 此键必须是唯一的。
PersonaImgUrl Persona Image(Profile Picture) 的 Url 或 Base64 内容。
PersonaRole 辅助文本,最好是角色的职务
PersonaPresence 可选 - 要显示的人员状态 - 如果未定义,不会显示状态。 值应为以下值之一:awayblockedbusydndnoneofflineonline
PersonaOOF 可选 - True 或 False,基于角色是否外出。

Suggestions_Items 性能

属性 说明
SuggestionName 角色的显示名称。
SuggestionKey 此键标识特定项目。 此键必须是唯一的。
SuggestionImgUrl Persona Image(Profile Picture) 的 Url 或 Base64 内容。
SuggestionRole 辅助文本,最好是角色的职务
SuggestionPresence 可选 - 要显示的人员状态 - 如果未定义,不会显示状态。 值应为以下值之一:awayblockedbusydndnoneofflineonline
SuggestionOOF 可选 - True 或 False,基于角色是否外出。

其他属性

属性 说明
Theme 接受使用 Fluent UI 主题设计器 (windows.net) 生成的 JSON 字符串。 将此属性留空将使用 Power Apps 定义的默认主题。
AccessibilityLabel 屏幕阅读器 aria 标签
InputEvent 要发送到控件的事件。 支持 SetFocus 作为 InputEvent

示例

PeoplePicker 支持可从中检索 Input 集合的其他源。 以下是如何使用 PeoplePicker 组件的示例。

Office 365 用户连接器

  1. 将 Office 365 用户连接器添加为数据源。

  2. 将以下 Power Fx 公式分配给控件的 On Search 属性,来创建名为 UserCollection 的集合。

    ClearCollect(
        UserCollection,
        AddColumns(
            Filter(
                Office365Users.SearchUser(
                    {
                        searchTerm: Self.SearchText,
                        top: 500
                    }
                ),
                !(Mail in Self.SelectedPeople.PersonaKey)
            ),
            "SuggestionImgUrl",
            Substitute(
                JSON(
                    Office365Users.UserPhotoV2(Id),
                    JSONFormat.IncludeBinaryData
                ),
                """",
                ""
            ),
            "SuggestionKey",
            Mail,
            "SuggestionName",
            DisplayName,
            "SuggestionRole",
            JobTitle,
            "SuggestionPresence",
            "away"
        )
    )
    
  3. Suggestions_Items 属性设置为 UserCollection

    备注

    上述公式包括获取 UserPhoto 的连续请求,这会增加加载时间。 如果您不需要照片,希望缩短搜索时间,在控件的 Suggestions_Items 属性中使用以下公式,而不是 UserCollection

    AddColumns(
        Office365Users.SearchUser({ searchTerm: Self.SearchText, top: 500 }),
        "SuggestionKey", Mail, 
        "SuggestionName", DisplayName,
        "SuggestionRole", JobTitle
    )
    

此时控件正在运行,可以从 SelectedPeople 属性获取选定的成员。

PeoplePicker1.SelectedPeople

带有 Dataverse 表 - Microsoft Entra 用户或用户

  1. 通过指定以下代码片段设置 Suggestions_Items 属性。

    将表中的用户或特定用户(使用以下代码)添加到 PeoplePicker 的项目集合(在 Suggestions_Items 属性下)中。

    -AAD Users 桌子

    Search('AAD Users', Self.SearchText,"displayname" ,"mail")
    

    -Users 桌子

    Search('Users', Self.SearchText,"fullname","internalemailaddress")
    
  2. 使用 AddColumns() 根据需要映射列。 下面是列-属性映射的示例:

    属性名称 AADUser 表列 User 表列
    SuggestionKey “mail” “internalemailaddress”
    SuggestionName “displayname” “fullname”
    SuggestionRole “jobtitle” “jobtitle”

此时,人员选取器应该正在工作,可以从 SelectedPeople 属性中获取选定的成员。

PeoplePicker1.SelectedPeople

限制

此画布组件只能在画布应用和自定义页面中使用。