Sharepoint 以另一种格式获取SPListItem

Sharepoint 以另一种格式获取SPListItem,sharepoint,sharepoint-2007,sharepoint-designer,Sharepoint,Sharepoint 2007,Sharepoint Designer,我想从SPListItem中获取不同的行。我将用一个例子来说明我的问题。 此代码 Console.WriteLine(SPItemName["Created By"]); or Console.WriteLine(SPItemName["Created By"].ToString); 返回“8;用户名”(8是用户ID)。 如果我在SharePoint Designer中查找该行,我甚至可以选择此数据字段的格式。 所以我可以得到这个字段的html代码 如何在c#中设置数据字段的格式(如html代

我想从SPListItem中获取不同的行。我将用一个例子来说明我的问题。 此代码

Console.WriteLine(SPItemName["Created By"]);
or
Console.WriteLine(SPItemName["Created By"].ToString);
返回“8;用户名”(8是用户ID)。 如果我在SharePoint Designer中查找该行,我甚至可以选择此数据字段的格式。 所以我可以得到这个字段的html代码

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

谢谢

使用SPFieldLookupValue或 如果只需要用户名,请使用
SPFieldLookupValue
将id与值分开:
var userValue=新的SPFieldLookupValue(SPItemName[“创建人”]作为字符串)

然后你可以:

  • userValue.LookupValue
    返回用户名
  • 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;

注意:若要创建SPFieldUserValue,您必须传递对web的引用,这是因为SharePoint必须从用户信息列表中获取其他用户信息来构造SPFieldUserValue对象。

使用SPFieldLookupValue或 如果只需要用户名,请使用
SPFieldLookupValue
将id与值分开:
var userValue=新的SPFieldLookupValue(SPItemName[“创建人”]作为字符串)

然后你可以:

  • userValue.LookupValue
    返回用户名
  • 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;


注意:要创建SPFieldUserValue,您必须传递对web的引用,这是因为SharePoint必须从用户信息列表中获取额外的用户信息来构造SPFieldUserValue对象。

谢谢,这对我帮助很大。此外,我想得到其他自定义字段,我也遇到了同样的问题。我总是得到这样的“真实内容”。有解决这个问题的一般方法吗?@Fabian我提到的SPFieldLookupValue类解决了这个问题。这是分割该值的预期方法。因为这是SharePoint存储该项的方式(用于查找字段)。这是一件好事,因为当你想根据你的查找字段进行查询时,你可以通过值或id进行查询。谢谢,这对我帮助很大。此外,我想得到其他自定义字段,我也遇到了同样的问题。我总是得到这样的“真实内容”。有解决这个问题的一般方法吗?@Fabian我提到的SPFieldLookupValue类解决了这个问题。这是分割该值的预期方法。因为这是SharePoint存储该项的方式(用于查找字段)。这是一件好事,因为当您希望基于查找字段执行查询时,可以通过值或id执行查询