1

当我评估 SharePoint 列表的“用户”类型的自定义字段时,我希望只获取用户名,但我在开始时会看到需要修剪的其他字符。

SPContext.Current.ListItem[NameOfUserField]具有价值

“14;#DeeMac”

作为旁注 - 该字段被视为字符串 - 但在我的 xml 文件中,我已将其定义为“用户”字段类型 - 在何处以及为什么进行此转换?我最初确实尝试将其转换为SPFieldUser失败的。

4

1 回答 1

2

字符串的第一部分是相关用户的 ID SPWeb。粗略地说,即 DeeMac 是第 14 个使用该网络的人。

为了从中获取SPUser对象string,您需要获取SPWeb用户所属的 并SPFieldUserValue(SPWeb, string)使用两者调用构造函数。

SPFieldUserValue如此构造的包含User类型的属性,如果字符串为空/空,则该属性SPUser可能为空。

请注意,有时,我认为,用户列实际上可能已经包含SPFieldUserValue对象,而不是strings。

此外,如果它是一个多用户列,它可能包含一个SPFieldUserValueCollection对象或一个string传递给该类构造函数的对象。

如果您遇到问题,请调试并检查您的专栏中的实际内容。

于 2012-09-13T14:50:42.350 回答