CAML 查询
Posted
技术标签:
【中文标题】CAML 查询【英文标题】:CAML Query 【发布时间】:2009-06-19 15:50:04 【问题描述】:我想要一个 以从日历列表中获取事件。
我想在接下来的 30 天左右获得包括今天在内的所有事件。
到目前为止我有:
<Where>
<DateRangesOverlap>
<Geq>
<FieldRef Name=\"EventDate\" />
<Value Type=\"DateTime\">
<Today />
</Value>
</Geq>
<FieldRef Name=\"EndDate\" />
<FieldRef Name=\"RecurrenceID\" />
<Value Type=\"DateTime\">
<Month />
</Value>
</DateRangesOverlap>
</Where>
这不起作用:(有什么想法吗?
【问题讨论】:
你说不行,怎么行不行?你也可以粘贴你进行查询的代码吗? 您针对哪个 SharePoint 版本发布了此问题。 【参考方案1】:正如 Nat 所说,您暗示(但未指定)您正在使用日历列表中的重复事件,所以我假设那部分不起作用?
您需要在运行 CAML 查询之前设置 SPQuery.ExpandRecurrances
和 SPQuery.CalendarDate
属性,并且您只能使用对象模型而不是 Web 服务或通过在 CAML 中设置属性来执行此操作。
进一步 - IIRC 这只会扩展与.CalendarDate
在同一日历月内发生的重复事件的实例,因此您必须多次运行它才能获得多月视图。
这是迄今为止我找到的涵盖重复事件的最佳参考。
Understanding the SharePoint Calendar and how to export it to iCal format欢迎来到 SharePoint 中重复发生的事件的噩梦!
【讨论】:
【参考方案2】:循环实际上并没有将所有事件都添加到列表中,但 CAML 只能从列表中存储的“实际”事件中查询。
【讨论】:
以上是关于CAML 查询的主要内容,如果未能解决你的问题,请参考以下文章