PeoplePicker Control(预览版)
[本文为预发布文档,可能会发生变化。]
用于创建加载体验的控件。
备注
GitHub 代码组件存储库中的完整文档和源代码。
重要提示
- 这是一项预览功能。
- 预览功能不适合生产使用且功能可能受限。 这些功能在正式发布之前推出,以便客户可以提前使用并提供反馈。
说明
人员选取器 (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 |
可选 - 要显示的人员状态 - 如果未定义,不会显示状态。 值应为以下值之一:away 、blocked 、busy 、dnd 、none 、offline 、online |
PersonaOOF |
可选 - True 或 False,基于角色是否外出。 |
Suggestions_Items
性能
属性 | 说明 |
---|---|
SuggestionName |
角色的显示名称。 |
SuggestionKey |
此键标识特定项目。 此键必须是唯一的。 |
SuggestionImgUrl |
Persona Image(Profile Picture) 的 Url 或 Base64 内容。 |
SuggestionRole |
辅助文本,最好是角色的职务 |
SuggestionPresence |
可选 - 要显示的人员状态 - 如果未定义,不会显示状态。 值应为以下值之一:away 、blocked 、busy 、dnd 、none 、offline 、online |
SuggestionOOF |
可选 - True 或 False,基于角色是否外出。 |
其他属性
属性 | 说明 |
---|---|
Theme |
接受使用 Fluent UI 主题设计器 (windows.net) 生成的 JSON 字符串。 将此属性留空将使用 Power Apps 定义的默认主题。 |
AccessibilityLabel |
屏幕阅读器 aria 标签 |
InputEvent |
要发送到控件的事件。 支持 SetFocus 作为 InputEvent 。 |
示例
PeoplePicker
支持可从中检索 Input 集合的其他源。 以下是如何使用 PeoplePicker
组件的示例。
Office 365 用户连接器
将 Office 365 用户连接器添加为数据源。
将以下 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" ) )
将
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 用户或用户
通过指定以下代码片段设置
Suggestions_Items
属性。将表中的用户或特定用户(使用以下代码)添加到
PeoplePicker
的项目集合(在Suggestions_Items
属性下)中。-
AAD Users
桌子Search('AAD Users', Self.SearchText,"displayname" ,"mail")
-
Users
桌子Search('Users', Self.SearchText,"fullname","internalemailaddress")
使用 AddColumns() 根据需要映射列。 下面是列-属性映射的示例:
属性名称 AADUser 表列 User 表列 SuggestionKey “mail” “internalemailaddress” SuggestionName “displayname” “fullname” SuggestionRole “jobtitle” “jobtitle”
此时,人员选取器应该正在工作,可以从 SelectedPeople 属性中获取选定的成员。
PeoplePicker1.SelectedPeople
限制
此画布组件只能在画布应用和自定义页面中使用。