更新已更新的Sharepoint定期日历项的问题

时间:2013-08-09 15:02:47

标签: sharepoint recurrence

我正在尝试更新定期日历列表实例,当我第一次更新它一切正常但是当我获取更新的项目并尝试更新它时,它比没有更新。

这是我为更新定期项目所做的代码

    //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

                        // 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();

任何人都可以帮我弄清楚为什么第二次尝试更新时更新无法正常工作?更新的条目已正确获取,但不会更新。第一次更新的条目保持不变,并且可以在所有事件中的当前事件中看到另一个条目被创建,但它不会反映在重复项目中,并且在同一天如果我尝试获取条目而不是第一次更新条目被抓住了。

请参考图片: http://social.msdn.microsoft.com/Forums/getfile/185919

请帮助我〜

0 个答案:

没有答案