有没有办法停止OnItemSaving事件
本文关键字:OnItemSaving 事件 有没有 | 更新日期: 2023-09-27 18:19:59
我已经设法阻止了通过使用触发的OnItemSaved
事件
item.Editing.EndEdit(false,true);
然而,这仍然会触发OnItemSaving
事件。有没有办法也禁用它?
您可以使用EventDisabler
:
using (new EventDisabler())
{
item.Editing.BeginEdit();
item.Editing.EndEdit();
}
此处找到:通过Sitecore API 暂时禁用事件
为了扩展@Ruud van Falier的答案,值得注意的是,EventDisabler
和SecurityDisable
一样,继承自IDisposable
。因此,您可以创建一个EventDisabler
属性或本地变量,并且从初始化该变量或属性到调用Dispose()
方法,Sitecore Events将被禁用。
例如,在下面的类中,从调用Foo()
方法到调用Bar()
方法,事件都将被禁用。
public class SomeClass
{
private EventDisabler _eventDisabler;
...
public void ToggleEventDisabler(bool eventDisablerOn)
{
_eventDisabler = eventDisablerOn ? new EventDisabler() : null;
}
public void Foo()
{
ToggleEventDisabler(true); //turn on the event disabler
...do stuff...
}
public void Bar()
{
...do stuff...
if (_eventDisabler != null)
{
_eventDisabler.Dispose();
}
}
}