我有一个我在Visual Studio中开发的自定义sharepoint工作流程。工作流针对文档库运行,文档库具有连接到它的自定义内容类型。内容类型包括用户查找字段(“所有者”)。
我正在尝试让我的工作流程将任务分配给“所有者”查找字段。但是,我只能获取用户的显示名称,而不是帐户用户名。
有人可以帮忙吗?
答案 0 :(得分:10)
请参阅此Article,了解如何从现场获取用户详细信息。
public static SPUser GetSPUser(SPListItem item, string key) {
SPFieldUser field = item.Fields[key] as SPFieldUser;
if( field != null) {
SPFieldUserValue fieldValue = field.GetFieldValue(item[key].ToString()) as SPFieldUserValue;
if(fieldValue != null)
return fieldValue.User;
}
return null;
}
您的代码应该是这样的
SPUser spUser=GetSPUser(splistItem,"Owner");
String sUserName=(spUser!=null)?spUser.UserName:null;
答案 1 :(得分:4)
我的解决方案:
public static SPUser GetSPUser(SPListItem item, string key)
{
SPUser user=null;
SPFieldUserValue userValue = new SPFieldUserValue(item.Web, item[key].ToString());
if (userValue != null)
{
SPUser user = userValue.User;
}
return user;
}
如何致电:
SPUser spUser=GetSPUser(splistItem,"Owner");
这是经过测试的代码,工作正常。