我一直在寻找一种方法来检测使用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 回答
经过大量搜索后,我使用ItemUpdated事件来解决在专用字段中附件数量被删除的附件问题 . 一切都按预期工作 . 唯一的缺点是用户可能需要等待几秒才能看到附件移除的影响 .