CAML 之 CurrentUserGroup

同事有需求解决 只有当前用户在某个字段的用户或者组中的时候才可以看到某条记录。

开始简单的用filter,不行

又想到ClientContext读到一些数据然后跳转,体验不好

 

于是乎,google “sharepoint filter user in group”

http://www.alottolearn.net/2011/11/28/filter-active-tasks-by-me-and-me-as-group-member/

http://sympmarc.com/2010/06/16/caml-filter-for-current-group-membership/

 

核心就在

<Query>
    <Where>
     <And>
      <Neq>
       <FieldRef Name= "Status" />
       <Value Type= "Text" >Completed</Value>
      </Neq>
      <Or>
       <Membership Type= "CurrentUserGroups" >
         <FieldRef Name= "AssignedTo" />
       </Membership>
       <Eq>
        <FieldRef Name= "AssignedTo" />
        <Value Type= "Integer" >
          <UserID Type= "Integer" />
        </Value>
       </Eq>
      </Or>
     </And>
    </Where>
</Query>
 
ok,于是SPD打开allitem.aspx修改试图query, 测试,果然OK。
 
总结起来,既然是用 CAML,那么先应该查CAML Query Schema http://msdn.microsoft.com/en-us/library/ms467521.aspx
思路很重要啊。
 
 

 

你可能感兴趣的:(current)