나는 OnItemSaved
사건이 그러나 여전히 OnItemSaving
이벤트를 트리거OnItemSaving 이벤트를 중지 할 수있는 방법이 있습니까?
item.Editing.EndEdit(false,true);
의 사용을 통해 트리거되고 중지 처리했다. 이 방법도 사용할 수 없게 할 수 있습니까?
나는 OnItemSaved
사건이 그러나 여전히 OnItemSaving
이벤트를 트리거OnItemSaving 이벤트를 중지 할 수있는 방법이 있습니까?
item.Editing.EndEdit(false,true);
의 사용을 통해 트리거되고 중지 처리했다. 이 방법도 사용할 수 없게 할 수 있습니까?
당신은 EventDisabler
사용하여 해당 수행 할 수 있습니다
using (new EventDisabler())
{
item.Editing.BeginEdit();
item.Editing.EndEdit();
}
여기에서 찾을 수는 : Temporarily disable events through the Sitecore API 그냥 @Ruud 반 Falier의 대답에 확장
, 그것은 상속의 SecurityDisable
처럼 EventDisabler
것을 주목할 필요가있다 IDisposable
. 따라서 EventDisabler
인 속성 또는 로컬 변수를 만들 수 있으며 Dispose()
메서드가 호출 될 때까지 변수 또는 속성이 초기화되는 순간부터 Sitecore 이벤트가 비활성화됩니다.
예를 들어, 다음 클래스에서는 Bar()
메서드가 호출 될 때까지 Foo()
메서드가 호출 된 시점부터 이벤트가 비활성화됩니다.
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();
}
}
}
감사합니다. –