如何在SharePoint视图格式化中基于人员列显示用户个人资料照片?
问题根因
视图格式化引擎解析DOM属性值时,只有值以=开头才会识别为动态逻辑表达式。你当前的src属性是纯静态字符串,系统不会解析字符串内嵌的[$Person.email]占位符,最终拼接出的图片请求地址中,AccountName参数是字面量的占位符文本,无法匹配真实用户信息,自然只能显示占位图。
修正后的完整配置
{ "$schema": "https://developer.microsoft.com/json-schemas/sp/view-formatting.schema.json", "hideColumnHeader": true, "rowFormatter": { "elmType": "img", "attributes": { "src": "=concat('/_layouts/15/userphoto.aspx?size=L&AccountName=', [$Person.email])", "alt": "=concat([$Person.displayName], ' 个人资料照片')" }, "style": { "width": "48px", "height": "48px", "border-radius": "50%", "margin": "0 auto" } } }
配置注意事项
- 动态表达式必须严格以
=开头,静态文本片段要用单引号包裹,动态字段值不需要加引号 - 可通过
size参数调整照片尺寸,可选值包括:S(36px小尺寸)、M(72px中尺寸)、L(144px大尺寸) - 确保对应
Person列是SharePoint原生「人员或组」类型列,且列配置中已勾选「显示用户简介」选项,否则无法正常返回用户邮箱属性 - 配置完成后需要清除浏览器缓存重新加载视图,避免旧的格式化规则缓存导致的显示异常
内容的提问来源于stack exchange,提问作者Cellist
相关产品推荐
相关产品推荐

