我有一个列表,其中包含我想要过滤的用户/组列(列名为:USERS)。 如何仅在USERS列中获取当前用户所在列表中的项目?
答案 0 :(得分:1)
如果它只是一个自定义视图,请查看“任务”列表和“我的项目”视图以供参考。
您应该可以在视图中使用“过滤器”部分,并使用“等于”“[Me]”的过滤器。然而,听起来这是一个多值的领域,所以也许你可以用“包含”“[我]”来逃避。
如果您有MOSS,另一个考虑因素是调查受众。内容查询Web部件能够根据受众过滤列表项。
答案 1 :(得分:1)
if (item["users"] != null)
{
//get USERS field for item
SPFieldUserValueCollection fieldUserValueCollection = new SPFieldUserValueCollection(web, item["users"].ToString());
//go over the users/groups collection
foreach (SPFieldUserValue fieldUserValue in fieldUserValueCollection)
{
if (fieldUserValue.User == null) //group
{
if (web.SiteGroups.GetByID(fieldUserValue.LookupId).ContainsCurrentUser)
{
bolItemGood = true;
break;
}
}
else //user
{
if (fieldUserValue.User.IsDomainGroup) //domain group
{
if (web.IsCurrentUserMemberOfGroup(fieldUserValue.LookupId))
{
bolItemGood = true;
break;
}
}
else //sp user
{
if (fieldUserValue.User.LoginName == Context.User.Identity.Name)
{
bolItemGood = true;
break;
}
}
}
}
}