MOSS2010事件接收器开发以及自定义错误提示页

编制人:忘忧草 2012-04-27编辑

 

第一章 前言

Sharepoint2001的事件接收器的错误提示页,效果和用户体验很不友好。给用户的感觉貌似应用程序出现错误,如下图:

clip_image002

后来看了SDK发现sharepoint2010支持自定义的错误页面。可以做到按照自己的实际情况进行定义。下面将采用vs2010来做开发。

第二章 开发部署

1. 打开VS2010创建moss2010的事件接收器解决方案,如下图:

clip_image004

clip_image006

这里我选择了场解决方案。可以根据实际情况决定

选择【自定义列表】的【列表事项事件】,可以根据实际情况决定,如下

clip_image008

2. 修改部署的XML配置文件

提示:VS2010默认创建的事件接收器是针对所有列表部署的。这个显然不是我们需要的,那怎么修改呢?

找到Elements.xml文件,打开,如下图:

clip_image009

我们要修改成需要部署的对应列表。我这里部署到我测试的自定义列表【测试】这个列表里头。找到这个列表的URL(Lists/List4)如下图:

clip_image011

接下来修改Elements.xml文件,删除掉属性值:ListTemplateId="100",添加属性值:ListUrl="Lists/List4"即为刚才的URL地址,如下图:

clip_image013

3. 采用原有提示样式

我这里只是个引子,随便写点测试代码,实际的根据自己业务逻辑去编写。

我们先看自带的错误信息编码和效果图:

clip_image015

部署下,成功后,我们怎么知道是否成功只部署刚才如上说的【测试】列表呢。就是要验证一下以防万一部署到所有自定义列表里头,我们找一个事件接收器的查看工具,我这里推荐的是【EventHandlerExplorer】如下图:

clip_image017

注意:说明一下这个工具其实可以用来直接部署事件接收器的。我这里用了VS2010的带的部署工具。

为了验证不部署到其他列表中去,我们看下【公司通知】这个列表没有部署成功吧,如下图:

clip_image019

4. 部署完毕后,运行下看下效果图:

我们对【测试】列表进行添加一个项目测试下。因为我们这里做的ItemAdding事件(就是添加前的事件,我们只阻止标题非法关键字的添加),如下图:

clip_image021

点击保存,出现如下提示信息:

clip_image022

这个提示信息看上去是不是太不专业,太不友好了吧。做过开发的人员都知道这个报黄页错误了。给用户的感觉貌似是程序有BUG了。如同前言里头说的那样。

5. 修改代码成我们自己的提示样式

这里指向我自定义的错误面:MyCustomeErrPage.aspx(可以指向自己喜欢的错误页面都可以),代码如下:

clip_image024

修改后,我们来添加自定义错误页面。选择这个方案,先添加【Layout文件夹】再添加【应用程序页】如下图:

clip_image026

clip_image027

在CustomeErrPage文件夹下添加错误页面:MyCustomeErrPage.aspx,如下图:

clip_image029

添加完毕如下:

clip_image031

我们需要修改这个页面作为提示信息,修改如下图:

clip_image033

修改完毕保存,部署安装。运行看下效果图:

如上一样,添加非法关键字

clip_image034

clip_image036

这个是不是我们想要的结果呢?答案是肯定的。到此为止,我们就完成了自定义错误提示页的定制

特别说明:如果是infopath的表单页,此定制错误页面无效。大家可以用httpwatch等工具去监测,然后用适当的方式进行错误定制。

posted @ 2012-04-27 15:49  love007  阅读(564)  评论(1编辑  收藏  举报