Events Sharepoint 2013事件接收器项更新-检测附件

Events Sharepoint 2013事件接收器项更新-检测附件,events,sharepoint,attachment,Events,Sharepoint,Attachment,我一直在寻找一种方法,使用C#开发的SharePoint 2013中的同步事件接收器检测项目附件上的更改 ItemAdding事件是不相关的,因为如果在创建项目的同时上载附件,则这不是问题,但是,ItemUpdate事件更相关。实际上,如果仅在同步事件期间添加或删除一个(或多个)附件,我希望能够更新另一个字段。异步事件不是一个选项 我尝试了提供的解决方案,但没有任何运气: 添加附件时,Request.Files.Count大于或等于1 删除附件时,如果该项目上仍存在其他附件,则该附件等于1 未

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

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

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

  • 添加附件时,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++;
    }
}
int attachCount=0;
HttpFileCollection fileCollection=curContext.Request.Files;
对于(int j=0;j0)
{
attachCount++;
}
}
剩下的唯一一件事就是如何在ItemUpdate事件中检测附件是否已被删除,有什么想法吗


提前感谢

经过大量搜索,我使用ItemUpdate事件解决了附件删除问题,并在专用字段中添加了附件数量。一切如期进行。唯一不好的一面是,用户可能需要等待几秒钟才能看到附件删除的影响