如何查看SharePoint列的所有可用附加标识符?
问题描述
刚接触SharePoint,对专业术语不太熟悉,工作中用React代码访问SharePoint列表项时,需要通过select和expand操作获取列数据。发现选择列时,部分列名后要加斜杠(/)和附加标识符才能访问额外数据(比如查阅列),但SharePoint界面只显示斜杠前的列名,不知道斜杠后可用的附加标识符有哪些,比如代码里的ItemModifiedBy/Title。原开发者已离职,也没找到相关文档说明各列类型对应的附加标识符列表(比如ItemCreatedBy、ItemModifiedBy的可用标识符)。
附上工作中的代码片段:
const listName = ListNames().StudentList const StudentArticlesData = [] const list = sp.web.lists.getByTitle(listName) const endpoint = [ 'ID', 'Title', 'Question', 'Description', 'Answer', 'Category', 'Subcategory', 'Tags', 'IsArchived', 'ItemCreated', 'ItemCreatedBy/Title', 'ItemModified', 'ItemModifiedBy/Title', 'AttachmentFiles', ] const expand = ['ItemCreatedBy', 'ItemModifiedBy', 'AttachmentFiles'] const items = await list.items .select('' + endpoint + '') .expand('' + expand + '') .orderBy('ItemCreated', false) .get()
解决方案
1. 先明确这类字段的本质
你提到的ItemCreatedBy、ItemModifiedBy属于用户/用户组类型列,和普通查阅列原理类似:这类列存储的是指向用户实体的引用,所以需要用expand拉取关联的用户属性,select里的/就是指定要获取用户实体里的具体字段。
2. 快速查看字段的所有可用属性
有两种实用方法:
- 直接调用接口看完整数据:暂时去掉
select参数,只保留expand,调用接口获取单条数据,就能看到关联实体的全部属性。比如修改代码:
打印返回的const items = await list.items .expand('ItemCreatedBy,ItemModifiedBy') .top(1) .get()items[0].ItemCreatedBy,就能看到所有可用属性,比如Title(用户名)、Email、Id、LoginName等。 - 确认列的内部名称:进入列表设置→点击对应列(比如“创建者”),地址栏里
Field=后面的内容就是该列的内部名称(代码里用的ItemCreatedBy就是内部名称,界面显示的是友好名称)。
3. 不同列类型的附加标识符规律
- 用户/用户组列:关联的是User实体,常用属性有
Title、Email、Id、LoginName、Picture等。 - 普通查阅列:关联的是另一个列表的项,可用属性就是目标列表里的所有列(比如关联了“部门”列表,就能用
Department/Title、Department/ID等,目标列表有的列都能通过/访问)。 - AttachmentFiles:这是内置的附件集合,展开后能拿到每个附件的
FileName、ServerRelativeUrl、Length等属性。
4. 代码小优化
你当前代码里的字符串拼接可以改成更简洁的数组拼接写法,避免潜在问题:
.select(endpoint.join(',')) .expand(expand.join(','))
内容的提问来源于stack exchange,提问作者some_new_dev_dude
相关产品推荐
相关产品推荐

