我的用户配置文件具有一些自定义属性。现在,我需要获取此自定义属性对任何用户的所有值的列表。此代码返回一个错误,即“列”不存在。它可能已由另一个用户删除”。

这是正确的方法吗?有很多用户,可能有许多不同的值。

 SPListItemCollection userInformationList = SPContext.Current.Web.SiteUserInfoList.Items;
  var divisions= (from SPListItem userItem in userInformationList.Items where userItem["Division"] != null select userItem["Division"]); 
有帮助吗?

解决方案

从UserProfileManager中检查GetUserProfile。您得到整个对象,应该是搜索所有自定义属性列表的正确位置。

我正在研究一个几乎simliar webpart ..我试图仅显示几个自定义属性。

希望提供帮助

http://msdn.microsoft.com/en-us/library/microsoft.office.server.userprofiles.userprofilemanager.aspx

其他提示

首先,从来没有以这种方式在SharePoint中使用Linq!击中.Items属性时,您将从数据库中检索完整的用户信息列表!而是使用CAML查询使用SPQUERY对象“搜索”用户。

我建议您使用 U2U CAML查询构建器 要构建查询 - 使用该工具,您将获得正确的列和列名。

许可以下: CC-BY-SA归因
scroll top