SharePoint - 通过 CAML 按用户 ID 筛选列表
本文关键字:ID 筛选 列表 用户 通过 CAML SharePoint | 更新日期: 2023-09-27 17:55:56
>使用 SharePoint 2007 并尝试按名为 StudentName 的字段筛选项目列表:
<Field
ID="{GUID-REDACTED}"
Name="StudentName"
DisplayName="Student Name"
Type="User"
Group="STUDENT COLS" />
目前,这是用于筛选的 CAML,当它通过 U2U CAML 查询生成器运行时,它会毫无问题地返回正确的列表项,但是当它部署到 SharePoint 时,它会返回整个列表(即没有筛选)。
SPQuery userQuery = new SPQuery();
userQuery.Query = "<OrderBy>
<FieldRef Name='Rank'>
</FieldRef>
</OrderBy>
<Where>
<Eq>
<FieldRef Name='StudentName' LookupId='TRUE' />
<Value Type='Integer'><UserID /></Value>
</Eq>
</Where>"
SPListItemCollection userProjectBasket = PBL.GetItems(userQuery);
我已经尝试过带和不带查询标签,但无济于事,作为最后的手段,我还将 userID 的类型更改为 User,仍然没有乐趣。
非常难看,所以任何意见都热烈欢迎。谢谢。
OrderBy
caluse 需要在 Where
子句之后:
userQuery.Query =
@"<Where>
<Eq>
<FieldRef Name='StudentName' LookupId='TRUE' />
<Value Type='Integer'><UserID /></Value>
</Eq>
</Where>
<OrderBy>
<FieldRef Name='Rank'/>
</OrderBy>";
很好的答案 - 但请注意一件事 - 使用 SPQuery 对象时,您永远不会指定标记(这些标记在内部包含在 SPQuery.Query 对象中)。
此外,您仍然可以使用 U2U CAML 创建器来节省构建查询本身的时间(http://www.u2u.be/Tools/SharePointCamlQueryBuilder.aspx);虽然它是为 2007 年构建的,但它也适用于 2010 年。
大卫·斯特林/SICG - http://www.sterling-consulting.com