手机
当前位置:查字典教程网 >软件教程 >编程开发 >SharePoint 2007图文开发教程(5) 体验Event Handler
SharePoint 2007图文开发教程(5) 体验Event Handler
摘要:EventHandlerEventHandler是SharePoint中与文档库或列表相关联的事件处理程序,当我们对项目进行某些操作时,Ev...

SharePoint 2007图文开发教程(5) 体验Event Handler1

Event Handler

Event Handler是SharePoint中与文档库或列表相关联的事件处理程序,当我们对项目进行某些操作时,Event Handler就会截获这个事件,然后相应的进行操作。功能上比较像数据库中的触发器。比如:删除某个文件时向管理员发送一个邮件,添加一个列表时进行其他操作等等。

和2.0相比,WSS3.0对Event Handler提供了更强大的支持,如:列表,文档库,内容类型。并且支持同步和异步的操作等。

为SharePoint提供一个Event Handler并不是很费力,主要包括:开启Event Handler支持,编写Event Handler程序,向SharePoint中部署Event Handler。接下来逐一说明一下。

SharePoint 2007图文开发教程(5) 体验Event Handler1

开启Event Handler支持

默认情况下是不开启Event Handler支持的,需要我们手动开启:进入应用程序管理---进入Web应用程序常规设置。

SharePoint 2007图文开发教程(5) 体验Event Handler2

开启事件处理程序:

SharePoint 2007图文开发教程(5) 体验Event Handler3

这样就完成了对Event Handler开启的支持。

SharePoint 2007图文开发教程(5) 体验Event Handler1

编写Event Handler程序

SharePoint的Event Handler其实是一个类,这个类主要继承WSS中的SPWebEventReceiver,SPEmailEventReceiver,SPListEventReceiver,SPItemEventReceiver,IListEventSink等类,并且重写相应的方法来完成我们的需求。

这里做个简单的例子,当我们删除一个Items时,向日志文件中添加一条记录。

直接看代码:

C# Code复制内容到剪贴板

usingSystem; usingSystem.Collections.Generic; usingSystem.Text; usingSystem.IO; usingMicrosoft.SharePoint; namespaceEventHandlerText { publicclassItemLogEvent:SPItemEventReceiver { ///<summary> ///重写ItemDeleting,向日志文件写数据 ///</summary> publicoverridevoidItemDeleting(SPItemEventPropertiesproperties) { stringpath=@"c:Log.txt"; stringtext="删除Item"+":"+DateTime.Now.ToString(); StreamWriterwriter=newStreamWriter(path); writer.Write(text); writer.Close(); } } }

是不是很简单,接下来我们按照为WebPart添加密钥文件的方法,为我们的Event Handler添加密钥文件,添加的目的我在部署的时候再说。这样,简单的Event Handler就完成了。

SharePoint 2007图文开发教程(5) 体验Event Handler1

向SharePoint中部署Event Handler

和WebPart有所不同的是,Event Handler的dll需要放到GAC(Global Assembly Cache)中,而不能放在SharePoint网站的bin文件夹中,所以我们生成的dll必须进行强签名,这也就是上面为什么添加密钥文件的目的。

GAC的系统路径为:C:WINDOWSassembly,直接将生成的Event Handler dll拖入到这个路径中即可。

SharePoint 2007图文开发教程(5) 体验Event Handler4

先来看下SharePoint中的情况:

SharePoint 2007图文开发教程(5) 体验Event Handler5

在我们先前创建的网站中,我创建了一个文档库的List,并且上传了一个word文件,我们的Event Handler就是要添加到这里。

接下来就是将这个Event Handler部署到SharePoint中。可以通过代码的形式,也可以通过Feature的形式。这里介绍下代码的形式。

创建一个批处理程序(当然win程序也可以),添加如下代码:

C# Code复制内容到剪贴板 usingSystem; usingSystem.Collections.Generic; usingSystem.Text; usingMicrosoft.SharePoint; namespaceRegisterEvent { classProgram { staticvoidMain(string[]args) { try { SPSitesite=newSPSite("http://gao:8000/sites/Brian_Publication/");//指定网站 SPWebweb=site.OpenWeb(); SPListlist=web.Lists["文档库"];//指定List list.EventReceivers.Add(SPEventReceiverType.ItemDeleting,"EventHandlerText,Version=1.0.0.0,Culture=neutral,PublicKeyToken=9d965453379ac249","EventHandlerText.ItemLogEvent");//添加EventHandler Console.WriteLine("发布完成"); Console.ReadLine(); } catch(Exceptionex) { Console.WriteLine(ex.Message); Console.ReadLine(); } } } }

代码很容易,想必大家一看就能明白,找到工程生成的可执行文件,运行:

SharePoint 2007图文开发教程(5) 体验Event Handler6

这样就代表我们的Event Handler发布成功啦!至此,Event Handler的部署工作也就完成啦!

最后我们来测试下,进入文档库,删除那个“LINQ中文教程”word文件。到C:下看下Log.txt:

SharePoint 2007图文开发教程(5) 体验Event Handler7

OK,我们的Event Handler执行了,实现了我们想要的效果。

小结:有关Event Handler的内容就介绍到这里,相信大家认真的看一边就可以很轻松的掌握,当然有关Event Handler的内容还不止这些,需要在平时的应用中多多积累。

【SharePoint 2007图文开发教程(5) 体验Event Handler】相关文章:

SharePoint 2007图文开发教程(8) Excel Services扫盲

VMware Workstation 11 虚拟机安装Centos 6.6系统图文教程

SharePoint 2007图文开发教程(3) 实现简单的WebPart

彻底完全卸载 SQL Server 2005 的图文教程

彻底卸载SQL 2005图文教程

如何安装visual studio 2015?visual studio 2015图文安装教程

BatProject 批处理开发软件使用图文教程

Windows下MariaDB数据库安装图文教程

SQL SERVER 2005数据导入图文教程

Visual Foxpro 6.0 中文版安装图文教程

精品推荐
分类导航