首页 文章

Sharepoint 2013事件接收器ItemUpdating - 检测附件

提问于
浏览
0

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

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

我试着提供here的解决方案没有任何运气:

  • 添加附件时,Request.Files.Count大于或等于1

  • 当附件被删除时,如果项目上仍存在其他附件,则它等于1

  • 如果未进行任何更改,如果项目上存在其他附件,则仍然等于1 .

你有什么想法我能做到吗?

先感谢您,

凯文

EDIT 19 APRIL : 经过进一步调查后,我发现在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事件中检测到附件已被删除,任何想法?

先感谢您

1 回答

  • 0

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

相关问题