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:enter image description here

War es hilfreich?

Lösung

Seit MasterSeriesItemID Wird für bereits aktualisierte Artikel nicht leer sein. Wir können denselben Artikel aktualisieren und keinen neuen Artikel erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top