2

SharePoint 专家能否向我解释 GetListItems() 调用 Lists Web 服务返回的数据中的 ;#?

我想我明白他们在这里做什么。;# 几乎就像用于发表评论的语法......或者更好,包括实际数据(字符串)而不仅仅是 ID。这种方式你可以使用任何一种,但它们在同一列中很好地配对在一起。

我离基地很远吗?我只是无法弄清楚略有不同的用途。例如

我有一个清单:    
ows_Author  
658;#丁达尔,布鲁诺    
*在这种情况下,658 似乎是我在某处用户表中的 ID*

ows_CreatedDate(注意:自定义字段。不是 ows_Created)    
571;#2009-08-31 23:41:58    
*在这种情况下,571 似乎是我已经在其中的行的 ID。为什么重复?*   

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

4

2 回答 2

8

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

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


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

  • SPFieldLookupValueCollection
  • SPFieldMultiColumnValue
  • SPFieldMultiChoiceValue
  • SPFieldUserValueCollection
于 2009-08-31T22:54:12.463 回答
3

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

string rawValue = "1;#value";
SPFieldLookupValue lookupValue = new SPFieldLookupValue(rawValue);
string value = lookupValue.LookupValue; // returns value
于 2009-09-01T08:57:06.387 回答