2009-09-09 84 views
3

我有一個列表,其中有一個用戶/組列要過濾(列名是:USERS)。 如何獲取當前用戶存在於USERS列的列表中的項目?如何過濾sharepoint中用戶/組列的列表項?

+0

您是指通過caml查詢或通過自定義視圖做的意思? – 2009-09-09 14:13:30

+0

以任何方式它可能... – kisin 2009-09-10 07:00:03

回答

1

如果它只是一個自定義視圖,請查看任務列表和我的項目視圖以供參考。

你應該能夠去視圖中的過濾器部分,並有一個「等於」「[我]」的過濾器。但是,這聽起來像是一個多值字段,所以也許你可以用「包含」「[我]」離開。

另一個需要考慮的問題是如果你有MOSS,則可以調查觀衆。內容查詢Web部件能夠根據受衆篩選列表項目。

+0

我試圖創建一個視圖和篩選通過「[我]」,但它只適用於用戶,而不適用於組。我有用戶和組混合在一起。 – kisin 2009-09-10 07:02:04

+3

我相信這是錯誤的。即使啓用了選擇多項,SharePoint 2007也不會允許您在「個人」或「組」列中使用包含運算符。 – RossFabricant 2010-04-09 18:56:14

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; 
       } 
      } 
     } 
    } 
} 
+0

「item」來自哪裏 – 2011-04-17 14:06:17