编制人:忘忧草 2012-04-27编辑
第一章 前言
Sharepoint2001的事件接收器的错误提示页,效果和用户体验很不友好。给用户的感觉貌似应用程序出现错误,如下图:
后来看了SDK发现sharepoint2010支持自定义的错误页面。可以做到按照自己的实际情况进行定义。下面将采用vs2010来做开发。
第二章 开发部署
1. 打开VS2010创建moss2010的事件接收器解决方案,如下图:
这里我选择了场解决方案。可以根据实际情况决定
选择【自定义列表】的【列表事项事件】,可以根据实际情况决定,如下
2. 修改部署的XML配置文件
提示:VS2010默认创建的事件接收器是针对所有列表部署的。这个显然不是我们需要的,那怎么修改呢?
找到Elements.xml文件,打开,如下图:
我们要修改成需要部署的对应列表。我这里部署到我测试的自定义列表【测试】这个列表里头。找到这个列表的URL(Lists/List4)如下图:
接下来修改Elements.xml文件,删除掉属性值:ListTemplateId="100",添加属性值:ListUrl="Lists/List4"即为刚才的URL地址,如下图:
3. 采用原有提示样式
我这里只是个引子,随便写点测试代码,实际的根据自己业务逻辑去编写。
我们先看自带的错误信息编码和效果图:
部署下,成功后,我们怎么知道是否成功只部署刚才如上说的【测试】列表呢。就是要验证一下以防万一部署到所有自定义列表里头,我们找一个事件接收器的查看工具,我这里推荐的是【EventHandlerExplorer】如下图:
注意:说明一下这个工具其实可以用来直接部署事件接收器的。我这里用了VS2010的带的部署工具。
为了验证不部署到其他列表中去,我们看下【公司通知】这个列表没有部署成功吧,如下图:
4. 部署完毕后,运行下看下效果图:
我们对【测试】列表进行添加一个项目测试下。因为我们这里做的ItemAdding事件(就是添加前的事件,我们只阻止标题非法关键字的添加),如下图:
点击保存,出现如下提示信息:
这个提示信息看上去是不是太不专业,太不友好了吧。做过开发的人员都知道这个报黄页错误了。给用户的感觉貌似是程序有BUG了。如同前言里头说的那样。
5. 修改代码成我们自己的提示样式
这里指向我自定义的错误面:MyCustomeErrPage.aspx(可以指向自己喜欢的错误页面都可以),代码如下:
修改后,我们来添加自定义错误页面。选择这个方案,先添加【Layout文件夹】再添加【应用程序页】如下图:
在CustomeErrPage文件夹下添加错误页面:MyCustomeErrPage.aspx,如下图:
添加完毕如下:
我们需要修改这个页面作为提示信息,修改如下图:
修改完毕保存,部署安装。运行看下效果图:
如上一样,添加非法关键字
这个是不是我们想要的结果呢?答案是肯定的。到此为止,我们就完成了自定义错误提示页的定制
特别说明:如果是infopath的表单页,此定制错误页面无效。大家可以用httpwatch等工具去监测,然后用适当的方式进行错误定制。