我已成功地停止通過使用有沒有辦法停止OnItemSaving事件?
item.Editing.EndEdit(false,true);
然而,這仍然引發OnItemSaving
事件被觸發OnItemSaved
事件。有沒有辦法來禁用這個呢?
我已成功地停止通過使用有沒有辦法停止OnItemSaving事件?
item.Editing.EndEdit(false,true);
然而,這仍然引發OnItemSaving
事件被觸發OnItemSaved
事件。有沒有辦法來禁用這個呢?
你可以做到這一點使用EventDisabler
:
using (new EventDisabler())
{
item.Editing.BeginEdit();
item.Editing.EndEdit();
}
只是對@Ruud麪包車Falier的的答案擴大,值得注意的是,EventDisabler
,像SecurityDisable
,繼承從IDisposable
。因此,您可以創建一個屬性或局部變量,該屬性或局部變量是EventDisabler
,並且在變量或屬性初始化之前,Sitecore事件將被禁用,直到調用Dispose()
方法。
例如,在以下類中,從調用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();
}
}
}
輝煌,謝謝! – 2014-08-28 13:24:39