gpt4 book ai didi

sharepoint - 更新项在 SharePoint 中重复出现

转载 作者:行者123 更新时间:2023-12-03 18:26:18 27 4
gpt4 key购买 nike

我有一个事件列表。我创建了一个每天重复的新项目(开始时间:1/5/2010 12:00 AM 和结束时间:5/30/2010 12:00 AM)。我想删除具有 Start Time : 5/12/2010 12:00 AM 的项目,但我的应用程序抛出异常。

我的代码如下:

   DateTime eventDate = DateTime.Parse(list.Fields.GetFieldByInternalName("EventDate").GetFieldValueAsHtml(DateTime.Parse(this.DateTimeOfItem).ToUniversalTime()));
SPQuery pQuery = new SPQuery();
pQuery.ExpandRecurrence = true;
pQuery.CalendarDate = eventDate.AddDays(-1);
pQuery.Query = string.Format("<OrderBy><FieldRef Name=\"EventDate\"/></OrderBy><Where><And><DateRangesOverlap><FieldRef Name=\"EventDate\" /><FieldRef Name=\"EndDate\" /><FieldRef Name=\"RecurrenceID\" /><Value Type=\"DateTime\"><Week /></Value></DateRangesOverlap><Eq><FieldRef Name=\"ID\" /><Value Type=\"Counter\">{0}</Value></Eq></And></Where>", this.ID);
SPListItemCollection itemColl = list.GetItems(pQuery);
int index = 0;
while (index < itemColl.Count)
{
SPListItem item = itemColl[index];
if (DateTime.Parse(item["EventDate"].ToString()).CompareTo(eventDate) == 0)
{
web.AllowUnsafeUpdates = true;
item["UID"] = Guid.NewGuid().ToString();
item["EventType"] = 3;
item["RecurrenceID"] = eventDate;
item["MasterSeriesItemID"] = this.ID;
item["XMLTZone"] = null;
item["RecurrenceData"] = "Every 1 day(s)";
item.Update();
list.Update();
web.AllowUnsafeUpdates = false;
break;
}
index++;
}

我不知道为什么我不能更新这个项目。请帮我。

谢谢

PD。

最佳答案

要在 SharePoint 中删除重复事件的实例,您必须实际添加 新品 记录并将其标记为已删除。

要了解 SharePoint 中的重复事件并保持理智,您需要编写一个小实用程序来输出整个列表(每个字段)以了解它们的工作原理。 CAML 查询将重复发生的事件扩展为“假”实例,并且这些实例无法更新。

当您设置重复事件时,无论它有多少个实例,您都只会将 1 条记录添加到列表中。这是“主记录”并且在 中具有重复模式复发日期 field 。

当您添加异常(exception)时(例如,“1/5/2010 12 : 00 AM”上的实例已被删除或移至另一个日期),则这是另一个新记录。

在此异常(exception)记录中,您有以下感兴趣的字段

  • MasterSeriesItemID - 主循环记录的ID
  • 事件类型 - 3 表示修改实例,4 表示删除实例
  • RecurrenceID - 此执行替换的实例的日期时间

  • 它引用了组织的复发记录

    这是关于经常性事件的最佳引用。

    Understanding the SharePoint calendar and how to export it to iCal format

    请注意,在 SharePoint 2007 中,当您有“全天事件”(主记录或异常(exception))时,在 RecurranceID 字段中,在 UTC 与站点时间之间有一些非常疯狂的错误转换为/从 UTC 转换为站点时间

    关于sharepoint - 更新项在 SharePoint 中重复出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2811756/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com