将项目从回收站还原到共享点列表时会触发什么事件。以及如何使用属性查找该项目?请帮帮我
答案 0 :(得分:5)
根据Event Receivers on Content Types:
从回收站恢复会触发所有ItemAdding和ItemAdded事件,而不管内容类型
...
虽然我认为回收站的东西是一个设计缺陷,但我开始看到它的亮点。请注意如何实现事件接收器。目前我在考虑对代码中的内容类型进行额外检查可能是确保您的代码不会因不同的内容类型而意外运行的最安全方法吗?
也许你可以使用Created字段的值来确定列表项是真的是新的还是从回收站中恢复它。
答案 1 :(得分:3)
从回收站还原项目时会触发ItemAdded事件。 This Answer提供了一些关于如何区分项目是新添加还是恢复的选项。
答案 2 :(得分:1)
我对此的解决方案:
public override void ItemAdded(SPItemEventProperties properties)
{
if (!properties.AfterProperties.GetEnumerator().MoveNext())
{
//From recycle bin
}
}
答案 3 :(得分:0)
我今天遇到了同样的问题,但是我的事件接收器在ItemAdding中,其中SPItemEventProperties不包含任何日期。
我认为正确的方法是检查SPItemEventProperties.ListItemId属性的值。如果它是0,那么它是一个新项目。如果它不是0,那么它是从回收站恢复的项目,因为它必须在它返回的列表中保留它的原始ID。