我一直在寻找一种方法,使用C#开发的SharePoint 2013中的同步事件接收器检测项目附件的更改。
ItemAdding事件不相关,因为如果在创建项目的同一时间上传附件,则不会出现问题,但事件ItemUpdating更相关。实际上,如果仅在同步事件期间添加或删除一个(或多个)附件,我希望能够更新另一个字段。异步事件不是一种选择。
我尝试了提供here的解决方案而没有任何运气:
你有什么想法我能做到吗?
提前谢谢你,
凯文
编辑19月4日: 经过进一步调查,我发现 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事件中检测到附件已被删除,有什么想法吗?
提前谢谢
答案 0 :(得分:0)
经过大量搜索后,我使用ItemUpdated事件来解决在专用字段中附件数量被删除的附件问题。一切都按预期工作。唯一的缺点是用户可能需要等待几秒才能看到附件移除的影响。