4

我有一个用于页面库中的特定内容类型的项目事件接收器。我正在使用事件记录器对其进行调试,并且可以看出,每当我编辑页面并发布它时,它都会触发 3 个ItemUpdating和 3 个ItemUpdated事件。我确信在那个特定时间没有其他页面被保存。

这是什么原因,有什么方法可以“修复”它以每页发布仅触发 1 个事件?

或者,有什么方法可以将最后一个事件(即:页面现在已发布或正在发布)与其他事件区分开来,所以我最终不会运行我的代码三次?

4

2 回答 2

2

事实证明,这是因为当用户点击“发布”时,页面实际上被保存了 3 次:

  1. 文档被保存。
  2. 文档已签入。
  3. 该文件已发布。

这些中的每一个都会触发一个ItemUpdatedandItemUpdating事件。

于 2010-11-24T11:53:49.540 回答
1

使用 DisableEventFiring() 方法来防止触发任何其他事件。请记住通过 EnableEventFiring() 再次启用它。希望这可以帮助。

于 2010-11-22T18:06:25.213 回答