1

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

例如:我在 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
                            }
4

2 回答 2

1

问题在于保存项目,EventDate&EndDate被保存为同一天。

于 2012-12-01T05:52:06.913 回答
0

问题是您正在使用<Today/>. 您已经在查询中设置了 CalendarDate 属性,因此我建议您使用<Week/><Month/>改为获取其余项目。

于 2012-11-30T14:43:06.437 回答