2010-11-10 17 views

回答

5

根據Event Receivers on Content Types

從回收站恢復觸發所有ItemAdding且不論內容類型

的ItemAdded事件......

我雖然我認爲回收站的事情是一個設計缺陷,但我開始看到光明。小心你如何實現事件接收器。目前我在考慮對代碼中的內容類型進行額外檢查可能是確保您的代碼不會意外運行於其他內容類型的最安全方法?

也許您可以使用Created字段的值來確定列表項是否真的是新的或者它是否從回收站中恢復。

3

ItemAdded從回收站還原項目時會觸發事件。 This Answer提供了幾個選項,可以區分如果項目是新添加還是恢復。

0

我今天面臨同樣的問題,但我的事件接收器在ItemAdding中SPItemEventProperties不包含任何日期。

我認爲這樣做的正確方法是檢查SPItemEventProperties.ListItemId屬性的值。如果它是0,那麼它是一個新項目。如果它不是0,則它是從回收站中恢復的項目,因爲它必須將其原始ID保留在返回的列表中。

相關問題