SharePoint UserData和;返回数据中的#语法

时间:2009-08-31 22:42:49

标签: web-services sharepoint sharepoint-2007 user-data sharepoint-list

SharePoint专家可以向我解释GetListItems()调用Lists Web服务返回的数据中的数字吗?

我想我明白他们在这里做了什么。 ;#几乎就像是用于发表评论的语法......或者更好,包括实际数据(字符串)而不仅仅是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?*   

那里的任何人都可以对SharePoint的这方面有所了解吗?

2 个答案:

答案 0 :(得分:8)

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

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


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

  • SPFieldLookupValueCollection
  • SPFieldMultiColumnValue
  • SPFieldMultiChoiceValue
  • SPFieldUserValueCollection

答案 1 :(得分:3)

SPFieldUser继承自使用;#表示法的SPFieldLookup。您可以通过创建SPFieldLookupValue类的新实例来轻松解析该值:

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