当我评估 SharePoint 列表的“用户”类型的自定义字段时,我希望只获取用户名,但我在开始时会看到需要修剪的其他字符。
SPContext.Current.ListItem[NameOfUserField]
具有价值
“14;#DeeMac”
作为旁注 - 该字段被视为字符串 - 但在我的 xml 文件中,我已将其定义为“用户”字段类型 - 在何处以及为什么进行此转换?我最初确实尝试将其转换为SPFieldUser
失败的。
当我评估 SharePoint 列表的“用户”类型的自定义字段时,我希望只获取用户名,但我在开始时会看到需要修剪的其他字符。
SPContext.Current.ListItem[NameOfUserField]
具有价值
“14;#DeeMac”
作为旁注 - 该字段被视为字符串 - 但在我的 xml 文件中,我已将其定义为“用户”字段类型 - 在何处以及为什么进行此转换?我最初确实尝试将其转换为SPFieldUser
失败的。
字符串的第一部分是相关用户的 ID SPWeb
。粗略地说,即 DeeMac 是第 14 个使用该网络的人。
为了从中获取SPUser
对象string
,您需要获取SPWeb
用户所属的 并SPFieldUserValue(SPWeb, string)
使用两者调用构造函数。
SPFieldUserValue
如此构造的包含User
类型的属性,如果字符串为空/空,则该属性SPUser
可能为空。
请注意,有时,我认为,用户列实际上可能已经包含SPFieldUserValue
对象,而不是string
s。
此外,如果它是一个多用户列,它可能包含一个SPFieldUserValueCollection
对象或一个string
传递给该类的构造函数的对象。
如果您遇到问题,请调试并检查您的专栏中的实际内容。