Sharepoint事件接收器图片库更新事件
简介
Sharepoint中事件接受器是容易添加的,但有时需要设置几个属性。通过设置属性才能真确添加。阻止EventFiring。
需求
当上传图片成功后,自动修改图片的关键词自段。问题看来很简单其实有很多问题,首先要确保不是添加的文件夹。还有在资源管理其中添加是否能够成功。
问题
在资源管理器中总是报,图片以被锁定无法update()。这是应为图片在添加是触发了默认事件需要阻止EventFiring。
代码:
1、新建一个继承事件接收器的类
///<summary>
/// 禁止触发update事件
/// </summary>
public class SPItemEventReceiverHandling : SPItemEventReceiver
{
public SPItemEventReceiverHandling() { }
new public void DisableEventFiring()
{
base.EventFiringEnabled = false;
}
new public void EnableEventFiring()
{
base.EventFiringEnabled = true;
}
}
2、在更新列表更新时阻止EventFiring事件
SPListItem AddItem = properties.ListItem;
SPItemEventReceiverHandling rh= new SPItemEventReceiverHandling();
if(AddItem.FileSystemObjectType.ToString() != "Folder")
{
properties.Web.AllowUnsafeUpdates = true;
rh.DisableEventFiring();
AddItem["Keywords"]=”更新成功”; AddItem.SystemUpdate(false);
}
总结:
图片的前进会触发uptate()方法,所以需要阻止默认事件,同时操作同一数据,造成数据锁定。