2012-02-20 12 views
1

ItemAddingイベントを使用して、カレンダーに繰り返しデータを追加しようとしています。私のコードは次の通りです:共有ポイント2010アイテム追加挿入カレンダーの繰り返しデータ

public override void ItemAdding(SPItemEventProperties properties) 
     { 
      string evtTitle = Console.ReadLine(); 

      SPListCollection listCollectioon = properties.List.ParentWeb.Lists; 
      SPList list = listCollectioon.TryGetList("Calendar"); 
      SPListItemCollection listItems = list.Items; 

      SPListItem recEvent = listItems.Add(); 

      string recData = "<recurrence><rule>" + 
       "<firstDayOfWeek>su</firstDayOfWeek>" + 
       "<repeat><daily dayFrequency='1' /></repeat>" + 
       "<repeatInstances>1</repeatInstances></rule></recurrence>"; 

      recEvent["Title"] = evtTitle; 
      recEvent["RecurrenceData"] = recData; 
      recEvent["EventType"] = 1; 
      recEvent["EventDate"] = new DateTime(2012, 3, 1, 8, 0, 0); 
      recEvent["EndDate"] = new DateTime(2012, 3, 12, 9, 0, 0); 
      recEvent["UID"] = System.Guid.NewGuid(); 
      recEvent["TimeZone"] = 13; 
      recEvent["Recurrence"] = -1; 
      recEvent["XMLTZone"] = "<timeZoneRule>" + 
       "<standardBias>480</standardBias>" + 
       "<additionalDaylightBias>-60</additionalDaylightBias>" + 
       "<standardDate><transitionRule month='10' day='su' weekdayOfMonth='last' />" + 
       "<transitionTime>2:0:0</transitionTime></standardDate>" + 
       "<daylightDate><transitionRule month='4' day='su' weekdayOfMonth='first' />" + 
       "<transitionTime>2:0:0</transitionTime>" + 
       "</daylightDate></timeZoneRule>"; 

      recEvent.Update(); 
      listItems.Add(); 



      base.ItemAdding(properties); 


     } 

しかし、問題は同じ日に10の別々のイベントを作成していることです。私はこれの理由と私はこの問題を解決する方法を得ることができないですか?

+0

イベント・レシーバーが適用されているのと同じリストに項目を追加しますか? –

答えて

2

これは私のために働く。

SPList calendar = web.Lists["Calendar"]; 
       SPListItem recEvent = calendar.Items.Add(); 

       //string recData = "<recurrence><rule>" + 
       // "<firstDayOfWeek>su</firstDayOfWeek>" + 
       // "<repeat><daily dayFrequency=\"1\" /></repeat>" + 
       // "<repeatInstances>1</repeatInstances></rule></recurrence>"; 

       string recData = "<recurrence><rule><firstDayOfWeek>su</firstDayOfWeek><repeat><daily dayFrequency=\"1\" /></repeat><windowEnd>2012-02-26T01:00:00Z</windowEnd></rule></recurrence>"; 


       recEvent["Title"] = "Test 1"; 
       recEvent["RecurrenceData"] = recData; 
       recEvent["EventType"] = 1; 
       recEvent["Start Time"] = new DateTime(2012, 2, 21, 10, 0, 0); 
       recEvent["End Time"] = new DateTime(2012, 2, 25, 11, 0, 0); 
       recEvent["TimeZone"] = 10; 
       recEvent["Recurrence"] = true; 
       recEvent["XMLTZone"] = "<timeZoneRule><standardBias>300</standardBias><additionalDaylightBias>-60</additionalDaylightBias><standardDate><transitionRule month='11' day='su' weekdayOfMonth='first' /><transitionTime>2:0:0</transitionTime></standardDate><daylightDate><transitionRule month='3' day='su' weekdayOfMonth='second' /><transitionTime>2:0:0</transitionTime></daylightDate></timeZoneRule>"; 
       recEvent.Update(); 
       calendar.Update(); 

「repeatInstance」あなたが一定数に再発イベントを制限したり、「windowEnd」を使用したい場合は

関連する問題