|
<div id="cnblogs_post_body"> 今天温习了一下事件接收器,顺便记录一下。
1、用vs开发事件接收器,如果是针对列表或者列表项的,则不能够具体到某一列表;但是实际应用中大部分是要求具体到某一列表的,那怎么办呢?在这里本猪猪给大家推荐一个自己写的sharepoint小工具(http://www.cnblogs.com/fly-pig-not-pig/archive/2012/12/25/2832241.html),可以用&ldquo;列表管理&rdquo;-&ldquo;事件管理&rdquo;,来给某一列表添加事件处理。
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页面,接收错误信息并显示。
<div class="cnblogs_code">properties.Cancel = true;properties.Status = SPEventReceiverStatus.CancelWithRedirectUrl;properties.RedirectUrl = "/_layouts/EventReceiverProject3/Error.aspx?error=" + SPHttpUtility.UrlKeyValueEncode("u are wrongs!"); |
|