七星揽月

Efforts To Make The Best Of Their……
一口吃不出一个胖子,但胖子却是一口一口吃出来的,只要能每天坚持下来,我相信,一定会有收获的
每天进步一点点
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

Sharepoint开发EventHandler及部署

Posted on 2012-11-26 15:14  期星揽月  阅读(653)  评论(0编辑  收藏  举报

Event Handler 是SharePoint中与网站(web),列表/文档库(list),列表项(list item),邮件(Email)相关联的事件处理程序,当我们对站点内容进行某些操作是,Event Handler就会截获相应的事件,然后对其进行相应的操作。

所以,SharePoint中的EventHandler有Web Level,List Level,List Item Level和Email这几种。SharePoint在开发EventHandler的时候,需要继承SPWebEventReceiver,SPListEventReceiver,SpListItemEventReceiver或SPEmailEventReceiver类,然后实现里面的方法来完成我们的功能。

其实,SharePoint开发EventHandler是很简单的,如果说难的话,可能就难在了业务上面。下面,就以一个Demo来实现两个功能,记录一下EventHandler的开发过程,我这里创建的SharePoint2007项目,都是使用的WSPBuilder来完成的,它的确是个不错的工具。

1.首先,需要到CA中开启站点的EventHandler支持。

  1

  2

 

2.打开VS2005,创建WSPBuilder项目。

  3

  4

  5

  6

3.项目创建完成后,需要注意一下两个xml文件,分别是:feature.xml和elements.xml

feature.xml

elements.xml

4.好了,feature.xml和elements.xml文件该处理的地方以处理好了,这里,我需要添加两个事件,分别是ItemAdded和ItemDeleting,开始编写代码了。

ItemAdded & ItemDeleting

 

5.代码也编写完成了,接下来的工作就是部署咯。

   部署方式很简单的,WSPBuilder就是这么的给力,我们只需要做一下工作就可完成部署。

   image (鼠标右键项目,Build项目)

   image (Build WSP当前的项目,这一步是打包的过程,会将需要发布的文件生成一个WSP文件包)

  image (Deploy,这一步就是将刚才打包成WSP的文件分别部署到指定的发布位置,完成部署工作)

6.部署完毕后,需要到站点中去激活EventHandler,注意,我在创建EventHandler的时候,Scope指定的是“Web”,所以,我需要到“Site features”中去激活该EventHandler。

  image (从这里进去,找到刚才部署的site features)

  image (激活刚才部署的EventHandler)

7.OK,一切就绪,测试下吧。

  image

  image

 

以上是在SharePoint2007中使用WSPBuilder开发的EventHandler,相比之下,SharePoint2010开发EventHandler就方便多了,下面记录下SharePoint2010开发EventHandler与2007的不同以及注意事项。

1.SharePoint2010开发EventHandler时,不需要到CA中开启EventHandler支持;

2.SharePoint2010开发EventHandler时,在创建的项目中添加Event Receiver项,然后一步步选择事件接收器类型、事件源、处理什么样的事件。很方便就完成了项目的创建。

如下图所示:

 image image

3.SharePoint2010开发EventHandler时,可以将事件源指定到具体的位置(即具体到那一个Web或List上面去),如下所示:

Elements.xml

4.SharePoint2010部署方便,当我们在开发中选择部署类型为“沙盒解决方案”时,也就意味着,我们可以将开发好的WSP文件,经过站点管理员上传到SharePoint站点,并激活就可以让其工作了。

 

好了,就记录这么些吧,以后在慢慢补充。

有关SharePoint2010开发EventHandler(2010中jiaoEvent Receiver)可参考:http://www.cnblogs.com/chenxizhang/archive/2010/04/25/1719841.html