事件接收器
今天温习了一下事件接收器,顺便记录一下。
1、用vs开发事件接收器,如果是针对列表或者列表项的,则不能够具体到某一列表;但是实际应用中大部分是要求具体到某一列表的,那怎么办呢?在这里本猪猪给大家推荐一个自己写的sharepoint小工具(http://www.cnblogs.com/fly-pig-not-pig/archive/2012/12/25/2832241.html),可以用“列表管理”-“事件管理”,来给某一列表添加事件处理。
2、记录一下常用的东西
SPItemEventProperties方法和属性说明 | |
方法和属性 | 说明 |
BeforeProperties | 获取事件发生前的数据 |
AfterProperties | 事件发生后的数据,AfterProperties类型是SPItemEventDataCollection,可以通过其ChangeedProperties属性在前处理事件中给列表赋值 |
AfterUrl | 事件发生后文件的URL |
EventType | 事件类型 |
ListItem | 列表项对象 |
ListItemId | 列表项Id |
ListTitle | 列表标题 |
CurrentUserId | 当前用户ID |
UserDisplayName | 当前用户名 |
UserLoginName | 当前用户登录名 |
RelativeWebUrl | 站点的相对url |
SiteId | 当前站点的ID |
WebUrl | 当前站点的url |
OpenWeb | 采用此方法打开当前的站点对象,站点对象打开之后需要用Dispose方法进行释放。或者用using |
ReceiverData | 事件处理器关联的数据 |
Cancel | 释放取消事件的执行。 |
ErrorMessage | 事件取消时显示的错误消息 |
3、事件接收器,返回错误信息的时候,界面不友好;我们可以自己写一个错误页;
方法:layouts下新建一个error页面,接收错误信息并显示。
properties.Cancel = true; properties.Status = SPEventReceiverStatus.CancelWithRedirectUrl; properties.RedirectUrl = "/_layouts/EventReceiverProject3/Error.aspx?error=" + SPHttpUtility.UrlKeyValueEncode("u are wrongs!");