【发布时间】: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