【问题标题】:SharePoint REST request to select all columns and to expand lookup columnsSharePoint REST 请求选择所有列并展开查找列
【发布时间】:2017-08-03 22:22:10
【问题描述】:

我有一个包含大约 50 列的 SharePoint(在线)列表。其中 6 个是查找列。我正在尝试编写一个 REST 查询来获取所有列,包括查找列的扩展($expand)。指定 '$select' 中的所有列将使 REST 查询 URL 超出 IE 允许的限制。但要扩展查找列,我需要在“$select”中指定它们。

?$select=col1,col2,col3/Title,col4/Title.....,col54&$expand=col3,col4

有没有办法访问列表中的所有列而不向服务器发出多次请求?

【问题讨论】:

  • 看看SP PnP JS 框架。它简化了使用 ajax 请求获取列表数据的过程,它还支持expand。只需将pnp.min.js 文件添加到您的解决方案中,然后使用$pnp 访问“pnp”对象

标签: rest sharepoint odata sharepoint-online


【解决方案1】:

您可以尝试对所有列使用 *。

在下面的示例中,* 已用于获取所有列。 Country 和 State 是查找列,因此它们与 * 一起使用,因为它们是 $expand 的一部分。

https://site/_api/lists/getbytitle('TestLookup')/items?$select=*,Country/Title,State/Title&$expand=Country/Id,State/Id

【讨论】:

  • “就像一把热刀穿过黄油”——它工作起来很轻松。我的印象是 * 和列名不能在 $select 子句中一起使用。谢谢@Anit-K
  • 奇怪.. 在我的 SharePoint Online 租户中对我不起作用。 $select=* 什么都不做...
  • 这将返回列表中的所有列,但仅返回查找列表中的“标题”。有没有办法获取当前列表的所有列和链接到的列表(通过使用查找列)?谢谢。
  • Denis:你不能只做 *,即默认情况下,如果你不使用 select 查询参数,API 将返回所有列。它必须与您尝试访问的内容一起使用(参见上面专门访问 Country 和 State 属性的示例),并且仅适用于此用例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-16
  • 2020-09-13
  • 2020-05-26
  • 1970-01-01
  • 2014-04-26
  • 2019-06-02
  • 1970-01-01
相关资源
最近更新 更多