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>
通过这种方式,我们就可以精确地进行用户过滤。