【问题标题】:Sharepoint 2013 Event Receiver ItemUpdating - detect AttachmentsSharepoint 2013 事件接收器 ItemUpdating - 检测附件
【发布时间】:2018-04-26 17:12:20
【问题描述】:

我一直在寻找一种方法,使用 C# 开发的 SharePoint 2013 中的同步事件接收器来检测项目附件的更改。

ItemAdding 事件不相关,因为如果在创建项目的同时上传附件不是问题,但是,ItemUpdating 事件更相关。实际上,如果仅在同步事件期间添加或删除一个(或多个)附件,我希望能够更新另一个字段。异步事件不是一个选项。

我尝试了here 提供的解决方案,但没有任何运气:

  • 添加附件时,Request.Files.Count 大于或等于 1
  • 当一个附件被移除时,如果该项目上仍然存在其他附件,则它等于 1
  • 在未进行任何更改时,如果该项目上存在其他附件,则它仍然等于 1。

你有什么想法吗?

提前谢谢你,

凯文

4 月 19 日编辑: 经过进一步调查,我发现 Request.File 中总是发送一个空文件,所以我现在知道为什么 Request.File.Count 总是至少相等的原因到 1。

添加一小段代码后,我可以检测到正在添加一个或多个有效文件:

int attachCount = 0;  
HttpFileCollection fileCollection = curContext.Request.Files;  
for (int j = 0; j < fileCollection.Count; j++)
{
    HttpPostedFile file = fileCollection[j];
    if (file.ContentLength > 0)
    {
        attachCount++;
    }
}

剩下的就是如何在 ItemUpdating 事件中检测到附件已被删除,有什么想法吗?

提前谢谢你

【问题讨论】:

    标签: events sharepoint attachment


    【解决方案1】:

    经过大量搜索,我使用ItemUpdated事件解决了附件删除与专用字段中的附件数量有关的问题。一切都按预期工作。唯一的缺点是用户可能需要等待几秒钟才能看到附件删除的影响。

    【讨论】:

      猜你喜欢
      • 2014-09-29
      • 1970-01-01
      • 1970-01-01
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      • 2012-11-14
      • 1970-01-01
      • 2014-08-28
      相关资源
      最近更新 更多