我想获取特定日期的所有项目。以编程方式将条目添加为重复事件,现在我需要根据用户选择的日期在每一天获取重复事件的所有实例。
例如:我在 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
}