Web services SharePoint用户数据和;#返回数据中的语法

Web services SharePoint用户数据和;#返回数据中的语法,web-services,sharepoint,sharepoint-2007,user-data,sharepoint-list,Web Services,Sharepoint,Sharepoint 2007,User Data,Sharepoint List,SharePoint专家能给我解释一下这个问题吗在对Lists web服务的GetListItems()调用返回的数据中 我想我理解他们在这里做什么。#几乎就像是一个用来做评论的语法。。。或者更好,包括实际数据(字符串)而不仅仅是ID。这样您可以使用其中任何一个,但它们在同一列中很好地配对在一起 我离基地很远吗?我就是想不出有什么不同的用途。比如说 I have a list with: ows_Author 658;#Tyndall, Bruno *in this case

SharePoint专家能给我解释一下这个问题吗在对Lists web服务的GetListItems()调用返回的数据中

我想我理解他们在这里做什么。#几乎就像是一个用来做评论的语法。。。或者更好,包括实际数据(字符串)而不仅仅是ID。这样您可以使用其中任何一个,但它们在同一列中很好地配对在一起

我离基地很远吗?我就是想不出有什么不同的用途。比如说

I have a list with: ows_Author 658;#Tyndall, Bruno *in this case the 658 seems to be an ID for me in a users table somewhere* ows_CreatedDate (note: a custom field. not ows_Created) 571;#2009-08-31 23:41:58 *in this case the 571 seems to be an ID of the row I'm already in. Why the repetition?* 我有一份清单,上面有: 作者 658;#廷德尔,布鲁诺 *在本例中,658似乎是我在某个用户表中的一个ID* ows_CreatedDate(注意:自定义字段。未创建ows_) 571;#2009-08-31 23:41:58 *在本例中,571似乎是我所在行的ID。为什么要重复?* 有没有人能解释一下SharePoint的这一方面

字符串
#被SharePoint的查找字段(包括用户字段)用作分隔符。使用对象模型时,可以使用
SPFieldLookupValue
SPFieldUserValue
将分隔字符串转换为强类型对象。但是,在使用web服务时,我相信您需要自己解析字符串

第一部分是一个整数ID:站点用户列表中的ID,或查找列表中相应项的ID,这是正确的。第二部分是查找列的用户名或值


Nicolas正确地指出,此分隔符也用于其他复合字段值,包括

  • SPFieldLookupValueCollection
  • SPFieldMultiColumnValue
  • SPFieldMultiChoiceValue
  • SPFieldUserValueCollection

SPFieldUser从SPFieldLookup继承,后者使用;#符号通过创建SPFieldLookupValue类的新实例,可以轻松解析该值:

string rawValue = "1;#value";
SPFieldLookupValue lookupValue = new SPFieldLookupValue(rawValue);
string value = lookupValue.LookupValue; // returns value

当一个字段存储多个项目时(例如,在多选字段中),此符号也很有用