以另一种格式获取SPListItem

时间:2011-07-12 11:34:17

标签: sharepoint sharepoint-2007 sharepoint-designer

我想从SPListItem获取不同的行。我将以一个例子向您展示我的问题。 这段代码

Console.WriteLine(SPItemName["Created By"]);
or
Console.WriteLine(SPItemName["Created By"].ToString);

返回“8; UserName”(8是用户ID)。 如果我在SharePoint Designer中查找行,我甚至可以选择此数据字段的格式。 所以我可以得到这个字段的HTML代码。

如何在c#中设置数据字段的格式(如html代码或文本)?

感谢

1 个答案:

答案 0 :(得分:1)

使用SPFieldLookupValue

如果您只需要用户名,请使用SPFieldLookupValue从值中分隔ID: var userValue = new SPFieldLookupValue(SPItemName["Created By"] as string)

然后你可以:

  • userValue.LookupValue返回UserName
  • userValue.LookupId返回ID

或SPFieldUserValue

或者更好的是,您可以创建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对象。