前言
在使用caml query查询SharePoint list数据时候,经常需要筛选用户或组字段( User or Group),比如,查找当前登录人的列表数据,或是通过用户ID来查找相关数据等,接下来咱们一起来看看
示例
- 根据用户ID(UserID)来查找该用户相关数据
<Where> <Or> <Membership Type=’CurrentUserGroups’> <FieldRef Name=’AssignedTo’ /> </Membership> <Eq> <FieldRef Name=’AssignedTo’ LookupId=’TRUE’ /> <Value Type=’Lookup’>27</Value> </Eq> </Or> </Where>
- 查找当前登录人相关数据
<Where> <Or> <Eq> <FieldRef ID="AssignedTo" /> <Value Type="Integer"> <UserID/> </Value> </Eq> <Membership Type="CurrentUserGroups"> <FieldRef Name="AssignedTo" /> </Membership> </Or> </Where>
相关扩展 (Membership
)
<Membership>
标签中有Type属性, 此属性包含5个值,下面将详细介绍
-
SPWeb.AllUsers : this value is used to identify the tasks assigned to users (not groups)
-
SPGroup : using this parameter you must add the group ID like that:
<Membership Type=”SPGroup” ID=”7″>
This parameter will return list of tasks assigned to members of this group.
-
SPWeb.Groups : The tasks assigned to the group site collection appear but not the tasks assigned to specific groups site.
-
CurrentUserGroups : The tasks assigned to the current user groups will appear but not tasks assigned directly to the user.
-
SPWeb.Users : Tasks assigned to users who have received rights to the site directly (not through a group).
备注:使用上述caml查询,可以通过LookupId=’TRUE’根据用户ID来获取相关数据,也可以使用<Membership Type=”SPGroup” ID=”7″>(此处7是SharePoint组ID)来获取该组的相关数据