我想从SPListItem获取不同的行。我将以一个例子向您展示我的问题。 这段代码
Console.WriteLine(SPItemName["Created By"]);
or
Console.WriteLine(SPItemName["Created By"].ToString);
返回“8; UserName”(8是用户ID)。 如果我在SharePoint Designer中查找行,我甚至可以选择此数据字段的格式。 所以我可以得到这个字段的HTML代码。
如何在c#中设置数据字段的格式(如html代码或文本)?
感谢
答案 0 :(得分:1)
如果您只需要用户名,请使用SPFieldLookupValue
从值中分隔ID:
var userValue = new SPFieldLookupValue(SPItemName["Created By"] as string)
然后你可以:
userValue.LookupValue
返回UserName userValue.LookupId
返回ID 或者更好的是,您可以创建SPFieldUserValue对象来访问任何其他用户属性,如电子邮件,登录名等。
SPFieldUserValue objUserFieldValue = new SPFieldUserValue(web, SPItemName["Created By"].ToString());
之后你可以使用:
objUserFieldValue.User.LoginName;
objUserFieldValue.User.Name;
objUserFieldValue.User.ID;
objUserFieldValue.User.Groups;
objUserFieldValue.User.Roles;
objUserFieldValue.User.Email;
objUserFieldValue.User.Sid;
objUserFieldValue.User.UserToken;
http://www.sharepointkings.com/2009/04/spfielduservalue-and.html
注意:要创建SPFieldUserValue,您必须传递对Web的引用,这是因为SharePoint必须从用户信息列表中获取其他用户信息才能构造SPFieldUserValue对象。