如何按sharepoint中的user / group列过滤列表项?

时间:2009-09-09 13:15:42

标签: list sharepoint filter

我有一个列表,其中包含我想要过滤的用户/组列(列名为:USERS)。 如何仅在USERS列中获取当前用户所在列表中的项目?

2 个答案:

答案 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;
                }
            }
        }
    }
}