【问题标题】:SharePoint: Multiple events for single item updatedSharePoint:更新单个项目的多个事件
【发布时间】:2011-05-13 21:07:54
【问题描述】:
我有一个用于页面库中的特定内容类型的项目事件接收器。我正在使用事件记录器对其进行调试,并且可以看出,每当我编辑页面并发布它时,它都会触发 3 个ItemUpdating 和 3 个ItemUpdated 事件。我确定在该特定时间没有保存其他页面。
这是什么原因,有什么方法可以“修复”它以使每个页面发布仅触发 1 个事件?
或者,有没有办法区分最后一个事件(即:页面现在已发布或正在发布)与其他事件,所以我最终不会运行我的代码三次?
【问题讨论】:
标签:
sharepoint
event-receiver
【解决方案1】:
事实证明,这是因为当用户点击“发布”时,页面实际上被保存了 3 次:
- 文档已保存。
- 文档已签入。
- 文档已发布。
每一个都会触发ItemUpdated 和ItemUpdating 事件。
【解决方案2】:
使用 DisableEventFiring() 方法来防止触发任何其他事件。请记住通过 EnableEventFiring() 再次启用它。希望这会有所帮助。