我有一个内容查询Web部件,它读取日历列表并显示当前正在运行的事件。
我遇到的问题是,当我设置一个重复事件时,我的查询会">中断"。
我的CAML请求:
<Where>
<And>
<Leq>
<FieldRef Name="EventDate" Nullable="False" Type="DateTime"/>
<Value Type="DateTime" IncludeTimeValue="TRUE">
<Today />
</Value>
</Leq>
<Geq>
<FieldRef Name="EndDate" Nullable="False" Type="DateTime"/>
<Value Type="DateTime" IncludeTimeValue="TRUE">
<Today />
</Value>
</Geq>
</And>
</Where>
问题是,每当开始时,重复性事件都被定义为EventDate为,但10年后的结束日期类似于(或在4499O_O年(。
这是一个重复事件的身份输出(似乎没有什么能像这样定义它……至少,从我可以玩的信息来看(。
Property:ListId | Value:<gibberish>
Property:WebId | Value:<gibberish>
Property:ID | Value:17
Property:Title | Value:maint
Property:FileRef | Value:SiteDirectory/mysite/Lists/Calendrier/17_.000
Property:_x007B_1d22ea11_x002D_1e32_x002D_424e_x002D_89ab_x002D_9fedbadb6ce1_x007D_ | Value:17
Property:Modified | Value:2011-07-05 10:37:02
Property:Author | Value:Admin
Property:Editor | Value:Admin
Property:Created | Value:2011-07-05 10:37:02
Property:PublishingRollupImage | Value:
Property:_Level | Value:1
Property:Comments | Value:
Property:EventDate | Value:2011-07-05 03:00:00
Property:EndDate | Value:2021-01-26 05:00:00
Property:fAllDayEvent | Value:0
Property:LinkUrl | Value:http://localhost/SiteDirectory/mySite/Lists/Calendrier/17_.000
Property:PubDate | Value:Tue, 05 Jul 2011 14:37:02 GMT
Property:ImageUrl | Value:
Property:ImageUrlAltText | Value:
Property:Description | Value:
Property:Style | Value:identity
Property:GroupStyle | Value:Band
Property:__begincolumn | Value:True
Property:__begingroup | Value:False
(此事件定义为每周一和周二发生(。
- 如何知道某个事件是否复发
- 如何筛选我的查询以仅包含当前正在运行的周期性事件
首先要意识到的是,一个重复的事件系列只存储为一个事件,而不是每个单独的实例。
因此,开始/结束日期很长——这是递归的总长度,而不是任何特定的实例。
如果您正在处理重复发生的事件,则有一个fRecurrance字段为True。
这是你能找到的理解反复发生的事件的唯一指南,但请注意,处理反复发生的事情是一项艰巨的工作,而这正是愤怒、仇恨和痛苦的根源。。。
MSDN-了解SharePoint日历以及如何将其导出为iCal格式