【问题标题】:New Calendar Event Does Not Display新日历事件不显示
【发布时间】:2014-11-21 07:18:27
【问题描述】:

我正在使用 C# 和 CSOM 构建一个应用程序,该应用程序在我知道我的 O365 订阅中存在的 SharePoint 日历中创建一个事件。我知道 O365 是 SharePoint 2013,但我的应用程序以 SharePoint 2010 为目标,所以我将不得不处理这两个版本。

没有抛出异常,一切似乎都成功了,但新事件不会显示在日历中,即使在页面刷新之后也是如此。如果我得到具有相同事件标题的项目集合,则返回程序输入的事件,并且似乎包含代码中设置的所有列。

CalendarItemCreate 函数将数据放入日历的所有必需列中。如果我搜索通过 SharePoint 日历手动输入的其他日历项目,我会找到它们。我可以看到的手动输入事件或程序输入事件之间的唯一区别是“描述”列有 ' 用于手动输入事件。

有什么想法吗?

  private void CalendarItemCreate(ICalendarItem item) {

        using (var context = new ClientContext(_calendarLocation)) {
           context.Credentials = _credentials;

           var web = context.Web;
           var transferScheduleList = web.Lists.GetByTitle(TransferScheduleToken);

           var listItemCreationInformation = new ListItemCreationInformation();
           var listItem = transferScheduleList.AddItem(listItemCreationInformation);
           listItem[TitleToken] = item.EventTitle;
           listItem[EventDateToken] = item.EventStartLocal;
           listItem[EndDateToken] = item.EventStartLocal.AddMinutes(30);
           listItem[DescriptionToken] = string.Empty; //item.EventDescription;
           listItem[TransferTypeToken] = item.EventTransferType;
           listItem[TransferStatusToken] = item.EventTransferStatus;
           listItem[CategoryToken] = "Data Transfer";
           listItem[ConfigurationFileLocationToken] = item.ConfigurationFileLocation;
           listItem[EventTypeToken] = 0;
           listItem[FallDayEventToken] = false;
           listItem[FrecurrenceToken] = false;
           listItem.Update();

           context.ExecuteQuery();
  }

【问题讨论】:

    标签: sharepoint sharepoint-2010 sharepoint-2013


    【解决方案1】:

    解决方案是将日期格式化为 SharePoint 可以理解的字符串和我的两个传输列中的数据类型不匹配的组合。下面的代码是成功的。

            using (var context = new ClientContext(_calendarLocation)) {
               context.Credentials = _credentials;
    
               var web = context.Web;
               var transferScheduleList = web.Lists.GetByTitle(TransferScheduleToken);
    
               var listItemCreationInformation = new ListItemCreationInformation();
               var listItem = transferScheduleList.AddItem(listItemCreationInformation);
               listItem[TitleToken] = item.EventTitle;
               listItem[EventDateToken] = item.EventStartLocal.ToUniversalTime().ToString(@"yyyy-MM-ddTHH:mm:ssZ");
               listItem[EndDateToken] = item.EventStartLocal.AddMinutes(30).ToUniversalTime().ToString(@"yyyy-MM-ddTHH:mm:ssZ");
               listItem[DescriptionToken] = item.EventDescription;
               listItem[TransferTypeToken] = item.EventTransferType.ToString();
               listItem[TransferStatusToken] = item.EventTransferStatus.ToString();
               listItem[CategoryToken] = "Data Transfer";
               listItem[ConfigurationFileLocationToken] = item.ConfigurationFileLocation;
               listItem[EventTypeToken] = 0;
               listItem[FallDayEventToken] = false;
               listItem[FrecurrenceToken] = false;
               listItem.Update();
    
               context.ExecuteQuery();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 2021-03-04
      • 1970-01-01
      相关资源
      最近更新 更多