[英]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.