SPQuery根据用户过滤

Sharepoint 列表项根据用户过滤,我们可以如下的Query语句进行查询:

<where>
  
<eq>
    
<fieldref name="PersonFieldName"/>
    
<value type="User">User Display Name</value>
  
</eq>
</where>

其中 “User Display Name” 是用户的显示名,但如果存在两个用户的显示名相同,怎么处理? 我们自然而然地想到去通过 LoginName去过滤。但很不幸,SharePoint的用户和用户组字段只存储显示名。那我们有办法去根据用户登录过滤吗?答案是肯定的。

我们需要进行一下转换,不是直接根据登录名,而是通过用户ID进行过滤,查询语句如下:

<where>
  
<eq>
    
<fieldref name="PersonFieldName" LookupId="TRUE"/>
    
<value type="int">UserID</value>
  
</eq>
</where>

通过这种方式,我们就可以精确地进行用户过滤。

你可能感兴趣的:(query)