Sharepoint 2010 如何通过唯一Id获取SharePoint列表项

Sharepoint 2010 如何通过唯一Id获取SharePoint列表项,sharepoint-2010,get,uniqueidentifier,sharepoint-clientobject,Sharepoint 2010,Get,Uniqueidentifier,Sharepoint Clientobject,如果我知道相关列表Id,是否可以通过唯一Id获取SP列表项(无需编写Caml请求) var item = list.GetItemById("CFA9E204-6509-424B-A246-0DE5295C42B2"); 当我尝试使用此代码获取项目时,收到一个错误:“输入字符串的格式不正确。” GetItemById()方法有什么问题 如果它只理解整数Id,为什么它有一个带字符串参数的重载方法GetItemById() 编辑: 我使用SharePoint客户端对象模型,其中列表实体没有方法Ge

如果我知道相关列表Id,是否可以通过唯一Id获取SP列表项(无需编写Caml请求)

var item = list.GetItemById("CFA9E204-6509-424B-A246-0DE5295C42B2");
当我尝试使用此代码获取项目时,收到一个错误:“输入字符串的格式不正确。”

GetItemById()方法有什么问题

如果它只理解整数Id,为什么它有一个带字符串参数的重载方法GetItemById()

编辑

我使用SharePoint客户端对象模型,其中列表实体没有方法GetItemByUniqueId(),但它有GetItemById()方法,该方法接收字符串或整数Id


是的,可以通过列表项的唯一标识符加载列表项。您可以使用SPList.GetItemByUniqueId方法

请参见尝试以下操作:

SPListItem item=list.GetItemByUniqueId(新Guid(“CFA9E204-6509-424B-A246-0DE5295C42B2”)

splist.Items[]
应该可以工作

例如:

Guid itemUniqueID = new Guid("bb49fd4e-c302-45ef-85dc-e12624423651");
SPListItem item = spliste.Items[itemUniqueID ];
Guid itemUniqueID = new Guid("bb49fd4e-c302-45ef-85dc-e12624423651");
string content = spliste.Items[itemUniqueID ]["Title"].ToString();
如果要获取该项的某个字段的内容:

string content = spliste.Items[<uniqeId>][<fieldGuidOrDisplayName>].ToString();

我是能够做到这一点的以下方法,需要你的建议,如果它的东西看起来可行

            CamlQuery cQuery = new CamlQuery();

            cQuery.ViewXml = string.Format(@"<View Scope='RecursiveAll'>
                                                      <Query>
                                                        <Where>
                                                          <Eq>
                                                            <FieldRef Name='UniqueId' />
                                                            <Value Type='Guid'>{0}</Value>
                                                          </Eq>
                                                        </Where>
                                                      </Query>
                                                    </View>", id);

            //ListItem item = listItem.GetItemById("293");

            ListItemCollection itemColl = listItem.GetItems(cQuery);

            sp.Context.Load(itemColl);

            sp.Context.ExecuteQuery();

            ListItem item = itemColl.FirstOrDefault();
CamlQuery cQuery=new CamlQuery();
cQuery.ViewXml=string.Format(@)
{0}
“,id);
//ListItem=ListItem.GetItemById(“293”);
ListItemCollection itemColl=listItem.GetItems(cQuery);
sp.Context.Load(itemColl);
sp.Context.ExecuteQuery();
ListItem=itemColl.FirstOrDefault();

谢谢,但Microsoft.SharePoint.Client中未提供此方法。我已经更新了问题并提供了有关MSDN文档的参考。谢谢,但Microsoft.SharePoint.Client中未提供此方法。我已经更新了问题,并提供了MSDN文档的参考资料。使用guid获取该项目是否幸运?