【问题标题】:Get List Item by Guid without List in SharePoint在 SharePoint 中通过没有列表的 Guid 获取列表项
【发布时间】:2012-08-06 23:49:32
【问题描述】:

谁能帮助我在不使用列表的情况下通过 SharePoint 中的唯一 ID 获取列表项?我知道列表项的唯一 ID,但我没有关于列表的信息。使用客户端对象模型我可以做到以下几点:

using (SP.ClientContext clientContext = new SP.ClientContext(...))
{
    **SP.List list = clientContext.Web.Lists.GetById(listId);**
    SP.ListItem listItem = list.GetItemById(listItemId);
    clientContext.Load(listItem);
    clientContext.ExecuteQuery();
    ...
}

不幸的是,在这段代码中我使用了 listId,但问题是在我的任务中我不知道 listId,我只有 ListItem Guid。由于我有唯一的 Id,我相信一定有一种方法可以在不使用任何其他信息的情况下获取此项目。

【问题讨论】:

    标签: sharepoint listitem unique-id


    【解决方案1】:

    您已经发布了一个带有客户端对象模型的 sn-p,所以我认为它是解决方案的首选对象模型。但是,如果您可以接受,我已经找到了一些有关如何使用服务器端对象模型实现此目的的信息,您可能会发现这些信息对您有所帮助。

    如果项目存在于根站点中,这似乎可以使用SPWeb.GetFile(Guid itemGuid) 来完成。

    如果您希望它也适用于子网站,您可以使用SPWeb.GetSiteData 方法来调用 caml 检索项目,如本文所述:http://www.chakkaradeep.com/post/Retrieving-an-Item-from-the-RootWeb-and-Subwebs-using-its-UniqueId.aspx

    您还可以查看 SO 上的此线程以获取更多信息: SharePoint: Get SPListItem by Unique ID.

    如果您在使用这些方法时遇到任何问题,请告诉我。我还将寻找与客户端对象模型一起运行的替代方案,如果我找到了,我会发布它们,但是,它似乎更难以实现。

    【讨论】:

    • 谢谢你,卢卡斯!我非常感谢您的帮助。在我的情况下,使用客户端对象模型或 Web 服务是首选解决方案。现在,我想通过您的帖子,我将尝试在 SharePoint 端创建一个自定义 Web 服务,该服务将使用 SPWeb.GetSiteData。在我看来,这是合适的方式。谢谢!
    • 好的,我很高兴为您提供帮助 :)。如果您遇到任何问题,请告诉我。我仍然想知道这是否可以使用客户端对象模型来完成。
    • 感谢您接受我的回答 :)。如果您觉得答案有用,也请点赞;)。
    • 谢谢:)。如果您在应用此解决方案时需要任何帮助,请告诉我。
    猜你喜欢
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 2022-01-02
    • 2020-05-06
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    相关资源
    最近更新 更多