SharePoint:更新了单个项目的多个事件
我有一个用于页面库中使用的特定内容类型的项目事件接收器。我正在使用事件记录器来调试它,我可以看出,每当我编辑页面并发布它时,它都会触发 3 个 ItemUpdating
和 3 个 ItemUpdated
事件。我确信在该特定时间内没有其他页面被保存。
造成这种情况的原因是什么?有什么方法可以“修复”它,以便每个页面发布仅触发 1 个事件?
或者,有什么方法可以将最后一个事件(即:页面现已发布或正在发布)与其他事件区分开来,这样我就不会最终运行我的代码三次?
I have an item event receiver for a specific content type that is used in a Pages library. I am using the event logger to debug it, and I can tell that whenever I edit a page and publish it, it fires 3 ItemUpdating
and 3 ItemUpdated
events. I am certain that no other pages are being saved in that specific time.
What is the cause of this and is there any way to "fix" it to trigger only 1 event per page publish?
Alternatively, is there any way to distinguish the last of the events (ie: page is now published or being published) from the others, so I don't end up running my code three times?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
事实证明,这是因为当用户点击“发布”时,页面实际上被保存了3次:
其中每一个都会触发
ItemUpdated
和ItemUpdating
事件。As it turns out, it was because the page was actually being saved 3 times when a user clicks "Publish":
Each of these triggers an
ItemUpdated
andItemUpdating
event.使用DisableEventFiring() 方法可以防止触发任何其他事件。只需记住通过 EnableEventFiring() 再次启用它即可。希望这有帮助。
Use the DisableEventFiring() method to prevent any other events from firing. Just remember to enable it again via EnableEventFiring(). Hope this helps.