【发布时间】:2012-09-12 07:12:19
【问题描述】:
我想获取特定日期的所有项目。以编程方式将条目添加为重复事件,现在我需要根据用户选择的日期在每一天获取重复事件的所有实例。
例如:我在 9 月 12 日创建了 3 个重复条目,并在 9 月 21 日结束,所有三个条目都有不同的 TIME 和单独的 ROOM NAME
我想根据所选日期在 12 日、13 日、14 日等到 21 日获取所有项目。
以下是我正在使用的代码,用于在选定的日期获取所有条目,bt 我在这里遇到的问题是,只有当我选择日期为 12thSept 时查询才会返回项目 并且对于所有其他日期,即从 13 日到 21 日,查询不会返回任何结果。
SPQuery oQueryBookings = new SPQuery();
string strQuery = "";
oQueryBookings.ExpandRecurrence = true;
//oQueryBookings.Query = strQuery;
oQueryBookings.CalendarDate = date.Date;
SPListItemCollection oCollBookings = null;
strQuery = "<Where><And><DateRangesOverlap><FieldRef Name='EventDate' />" +
"<FieldRef Name='EndDate' />" +
"<FieldRef Name='RecurrenceID'/>" +
"<Value Type='DateTime'>" +
"<Today />" +
"</Value>" +
"</DateRangesOverlap>" +
"<Eq><FieldRef Name='Room' /><Value Type='Lookup'>" + room + "</Value></Eq>" +
"</And></Where>";
oQueryBookings.ViewFields = string.Concat("<FieldRef Name='Title' />" +
"<FieldRef Name='EventDate' />" +
"<FieldRef Name='EndDate' />" +
"<FieldRef Name='Location' />" +
"<FieldRef Name='Description' />" +
"<FieldRef Name='fRecurrence' />" +
"<FieldRef Name='RecurrenceData' />" +
"<FieldRef Name='fAllDayEvent' />" +
"<FieldRef Name='LinkTitle'/>" +
"<FieldRef Name='Room'/>");
oQueryBookings.Query = strQuery;
oCollBookings = list.GetItems(oQueryBookings);
if (oCollBookings.Count > 0)
{
//Code Here
}
【问题讨论】:
标签: c# sharepoint-2010 calendar caml recurring-events