MOSS中删除绑定到List上的Eventhandler
通常,我们使用如下方式来为列表注册一个Eventhandler事件处理程序(早肥兄教程里也是用的这种方式):
SPSite site = new SPSite(siteurl);
site.OpenWeb(weburl);
SPList list = web.Lists[列表名字];
list.EventReceivers.Add(事件类型,程序集名称,类名);
每个 SPList 对象都具有一个 EventReceivers 集合。EventReceivers 集合公开了一个具有三种不同重载实现的 Add 方法。这个Add 方法是添加Eventhandler的最简单方法,它要求传递三个参数。如果您希望通过代码绑定事件处理程序,至少必须提供程序集的名称、命名空间限定的类名,以及使用来自 WSS 对象模型的 SPEventReceiverType 枚举的事件类型。调用 Add 方法是最简单的方法,但不是在所有情况下都很灵活。
以下代码说明了一个更加复杂的方法,其中事件处理程序绑定通过直接对 SPEventReceiverDefinition 对象进行编程来完成。这样您就有机会为绑定指定一个特定的 GUID 标识符,以便可以更轻松地添加和删除它们。它还使您能够初始化 SequenceNumber 属性和 Data 属性。
SPList SalesLeadsList=web.Lists[列表名字];
SPEventReceiverDefinitionCollection receivers;
receivers = SalesLeadsList.EventReceivers;
Guid ItemAddingDefId=new Guid();
ItemAddingDefId = new Guid("2D96ADCE-E7A9-461b-8DB6-1E4309419503");//指定Guid
if(!receivers.EventReceiverDefinitionExist(ItemAddingDefId))
{
SPEventReceiverDefinition ItemAddingDef;
ItemAddingDef = receivers.Add(ItemAddingDefId);
ItemAddingDef.Name = "ItemDeleteingHandler";
ItemAddingDef.Type = 事件类型;
ItemAddingDef.Assembly = 程序集名称;
ItemAddingDef.Class = 类名;
ItemAddingDef.Data = "today";
ItemAddingDef.SequenceNumber = 1001;
ItemAddingDef.Update();
}
这样我们就为该程序集指定了一个Guid,并通过这个Guid来删除掉它。
if (receivers.EventReceiverDefinitionExist(ItemAddingDefId))
{
receivers[ItemAddingDefId].Delete();
}
小结:单纯的从GAC里将Eventhandler卸载了,在执行添加更新删除时,列表肯定还会去找这个Eventhandler,这与上种方式速度上肯定有差异,类似于在页面上隐藏掉某些东西与删除掉某些东西(相信很多同仁在修改首页或模板页都做过这些事情,呵呵)吧,做事要有始有终。
转载于:https://www.cnblogs.com/greeny/archive/2010/09/03/1817097.html
MOSS中删除绑定到List上的Eventhandler相关推荐
- Android中删除常用联系人(上)
在Android 4.0中,google已经把移除常用联系人这个功能去掉. 当用户在进行拨打电话,接听电话等电话行为时,系统会自动对其对应号码的使用进行计数.然后根据计数情况来显示常用联系人. 移除常 ...
- jQuery unbind 删除绑定事件 / 移除标签方法
jQuery unbind 删除绑定事件 unbind([type],[data]) 是 bind()的反向操作,从每一个匹配的元素中删除绑定的事件.如果没有参数,则删除所有绑定的事件.你可以将你用b ...
- 删除iPhone邮箱smtp服务器,如何使用iOS13苹果系统删除iPhone和iPad上的所有电子邮件...
是否要删除iPhone或iPad上的所有电子邮件?您可以使用最新版本的iOS和iPadOS轻松地从任何iPhone或iPad上的邮件应用程序删除每封电子邮件,并且在所有iPhone,iPad和iPod ...
- 如何在iPhone上共享视频之前从视频中删除音频
Sometimes, you'd like to share a video with others, but the accompanying audio track is distracting ...
- 从administrators组中删除guest来宾账户时提示无法在内置账号上运行此操作的解决办法...
从administrators组中删除guest来宾账户时提示无法在内置账号上运行此操作 我的win2003服务器曾经杀出过木马,后来发现guest账号还会自动开启 经检查,guest账号居然跑到ad ...
- 怎样在Mac或Windows上的Parallels中删除虚拟机?
你需要从Parallels或Parallels Desktop Lite中删除虚拟机吗?当你因为任何原因使用特定的环境,操作系统或VM时,或许需要删除虚拟机从而释放磁盘空间,虽然这个现象很常见,但是很 ...
- 在计算机窗口中什么中的文件不能被删除,在Windows操作系统中,“回收站”可以恢复(1)上使用键删除的文件或文件夹。在“我的电脑”窗口中,...
55题库为您解答: 正确答案:B 解析:本题考查Windows操作系统应用的基本知识.在Windows操作系统中,"回收站"可以恢复硬盘上使用Del>键删除的文件或文件夹.& ...
- iphone交通卡忘记删除_如何从iPhone上的电子钱包应用中删除卡和通行证
iphone交通卡忘记删除 You go to open the Wallet app on your iPhone so that you can delete a card or pass you ...
- 电话中删除搜索框内的语音图标按钮。所有应用菜单上面的搜索框当菜单下拉后会重叠。相机视频拍的设置里面有个EIS,删除这个菜单,默认开启EIS。视频画质默认720p。
电话中删除搜索框内的语音图标按钮: override/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/dialer/ ...
- 怎么从计算机上删除东西吗,怎么在电脑中删除不想要的软件
在电脑中删除不想要的软件该怎么操作呢,那么怎么在电脑中删除不想要的软件的呢?下面是学习啦小编收集整理的怎么在电脑中删除不想要的软件,希望对大家有帮助~~ 在电脑中删除不想要的软件的方法 工具/原料 笔 ...
最新文章
- 对话图灵奖得主John Hennessy,他说对美国留学签证变化很忧心
- 帝国cms微信小程序多语言相亲交友制作记录难点使用的小程序组件分析
- mysql如何查询本年_mysql 查询本月、本年的数据
- cesium添加填充_Cesium中级教程1 - 空间数据可视化(一)
- jquery显示和隐藏元素
- ubuntu vim中输入中文
- python 初始化数组_Python里面这些点,据说90%的新手都会一脸懵逼
- Kali安装AWVS
- 一键logo生成器_logo制作助手下载-logo制作助手APP免费版下载v1.1
- 无线增益多路负反馈带通滤波器的研究
- 带weixin扫码登陆注册|仿城通网盘源码修复版
- AUTOSAR基础篇之CanTsyn
- thymeleaf渲染搜索页面(template: “class path resource [templates/serach.html]“)-serach2021-09-23
- uniapp实现点击回到顶部
- 库克低调访华,3小时郑州行程俨然一位效率大师
- 江西丰收节直播带货 国稻种芯·中国水稻节:消费季产销两旺
- Ubuntu使用lightdm避坑
- 类似微信聊天界面加载历史记录的样式
- 战棋SRPG游戏开发-序
- 文件夹加入到sys.path