Problem beim Aktualisieren eines bereits aktualisierten wiederkehrenden Kalenderelements
-
09-12-2019 - |
Frage
Ich versuche, eine wiederkehrende Kalenderlisteninstanz zu aktualisieren. Wenn ich das erste Mal aktualisiere, funktioniert alles einwandfrei, aber wenn ich das aktualisierte Element abrufe und versuche, es zu aktualisieren, wird es nicht aktualisiert.
Hier ist der Code, den ich zum Aktualisieren eines wiederkehrenden Elements erstellt habe
//fetch List item, in my case it will be exact one item per day
list = web.Lists["Calendar"];
SPQuery query1 = new SPQuery();query1.Query = string.Concat(
//Today"<Where><DateRangesOverlap>","<FieldRef Name='EventDate' />","<FieldRef Name='EndDate' />","<FieldRef Name='RecurrenceID' />","<Value type='DateTime'>","<Today/>","</Value>","</DateRangesOverlap>",
"</Where>");
query1.ExpandRecurrence = true;
query1.CalendarDate = DateTime.Parse(txtCalendarDate.Text);
//as only one item is fetched updated the fetched item
SPListItem Newitem = list.Items.Add();
//The guid of the recurrence item id
string uid_old = Convert.ToString(items[0]["UID"]);
Newitem["UID"] = new Guid(uid_old);
Newitem["Title"] = ttl;
Newitem["Location"] = ttl;
//Override the EventDate and EndDate
Newitem["EventDate"] = startdate;//Same date as item fetched but different time
Newitem["EndDate"] = Enddate;//Same date as item fetched but different time
//Set new item as recurrence item
Newitem["Recurrence"] = 1;
// recurrence item’s ID
int masterID;
if (Convert.ToString(items[0]["MasterSeriesItemID"]) == "" || Convert.ToString(items[0]["MasterSeriesItemID"]) == "0")
masterID = items[0].ID;
else
masterID = Convert.ToInt32(items[0]["MasterSeriesItemID"]);
Newitem["MasterSeriesItemID"] = masterID;
//Take recurrence item’s EventDate as RecurrenceID
Newitem["RecurrenceID"] = Convert.ToDateTime(items[0]["EventDate"].ToString());
Newitem["fRecurrence"] = 1;
Newitem["fAllDayEvent"] = 0;
Newitem["TimeZone"] = items[0]["TimeZone"].ToString();// What ever is the time zone.
//4 for override the recurrence item
Newitem["EventType"] = 4;
Newitem["RecurrenceData"] = Convert.ToString(items[0]["RecurrenceData"]);
Newitem.Update();
list.Update();
Kann mir jemand helfen herauszufinden, warum das Update beim zweiten Aktualisierungsversuch nicht funktioniert?Der aktualisierte Eintrag wird ordnungsgemäß abgerufen, aber nicht aktualisiert.Der beim ersten Mal aktualisierte Eintrag bleibt so wie er ist und kann unter „Aktuelle Ereignisse“ unter „Alle Ereignisse“ angezeigt werden. Es wird ein weiterer Eintrag erstellt, der sich jedoch nicht im wiederkehrenden Element widerspiegelt und am selben Tag, wenn ich versuche, den Eintrag abzurufen, als der beim ersten Mal aktualisierte Eintrag wird abgeholt.
Bitte beachten Sie das Bild:
Lösung
Seit MasterSeriesItemID
Wird für bereits aktualisierte Artikel nicht leer sein. Wir können denselben Artikel aktualisieren und keinen neuen Artikel erstellen.