Problem beim Abrufen wiederkehrender Elemente aus dem Sharepoint-Kalender
-
09-12-2019 - |
Frage
Ich möchte alle Artikel an einem bestimmten Tag abholen.Programmgesteuert wird der Eintrag als wiederkehrendes Ereignis hinzugefügt. Jetzt muss ich alle Instanzen wiederkehrender Ereignisse an jedem Tag gemäß dem vom Benutzer ausgewählten Datum abrufen.
Z.B:Ich habe am 12. September drei wiederkehrende Einträge vorgenommen, die am 21. September enden, wobei alle drei unterschiedliche Einträge haben TIME
und ein separates ROOM NAME
Ich möchte alle Artikel am 12., 13., 14. usw. bis zum 21. abholen, je nach ausgewähltem Datum.
Das Folgende ist der Code, mit dem ich arbeite, um alle Einträge an einem ausgewählten Tag abzurufen. Das Problem, das ich hier habe, ist jedoch: Die Abfrage gibt nur Elemente zurück, wenn ich als Datum den 12. September auswähle und für alle Bei anderen Daten, z. B. vom 13. bis zum 21., gibt die Abfrage kein Ergebnis zurück.
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
}
Lösung
Das Problem bestand darin, das zu speichern EndDate
Sobald das Enddatum gespeichert wurde, werden die Einträge korrekt abgerufen ExpandRecurrence
Und CalendarDate