5

任何人都可以帮助我在不使用列表的情况下通过 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,我相信必须有一种方法可以在不使用任何附加信息的情况下获取此项目。

4

1 回答 1

8

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

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

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

于 2012-08-09T19:32:28.333 回答