[英]Is there a way to stop OnItemSaving events?
我设法通过使用来阻止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();
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.