【问题标题】:Share point 2010 ItemAdding insert Recurrence data on calendarSharepoint 2010 项目添加在日历上插入重复数据
【发布时间】:2012-02-20 14:44:18
【问题描述】:

我正在尝试使用 ItemAdding 事件在日历上添加一些重复数据。我的代码如下:

 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 个单独的事件。我无法得到这个原因以及我如何解决这个问题?

【问题讨论】:

  • 您是否将项目添加到应用事件接收器的同一列表中?

标签: sharepoint sharepoint-2010


【解决方案1】:

这对我有用。

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"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-20
    • 2011-05-19
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多