SharePoint2010後刪除事件處理器ItemDeleted的使用

後刪除事件處理器ItemDeleted在列表項刪除之後調用,列表項被刪除之後,AfterProperties、BeforeProperties、ListItem屬性獲取列表中某個字段的值都是空的。因此一般情況下對於ItemDeleted事件主要是用來監聽列表項刪除之後是否發送電子郵件等操作。

在VS2010中可以直接創建列表項事件處理器,在VS2010的提示嚮導中可以選擇創建列表項的事件源、事件等操作,如圖1所示:

SharePoint2010已刪除項事件處理器

圖1

在圖1中的三項選擇中,第二項事件源是SharePoint 2010系統中自帶的列表模板,如果使用“將列表另存爲模板”功能將某個自定義列表存爲模板,則在圖1的“事件源”下拉列表框中是找不到的。在圖1中我們選擇了“自定義列表”事件源,那麼凡是在此網站中基於“自定義列表”模板創建的列表都會觸發此事件。在中文版的SharePoint 2010環境中,ItemDeleted事件叫做“已刪除項”,所以在圖1中要選擇“已刪除項”事件,點擊完成按鈕,VS2010會自動創建事件類,代碼如下:

 

  1. using System;  
  2. using System.Security.Permissions;  
  3. using Microsoft.SharePoint;  
  4. using Microsoft.SharePoint.Security;  
  5. using Microsoft.SharePoint.Utilities;  
  6. using Microsoft.SharePoint.Workflow;  
  7.  
  8. namespace Example.SharePoint.EventReceiver  
  9. {  
  10.     /// <summary>  
  11.     /// 列表項事件  
  12.     /// </summary>  
  13.     public class EventReceiver1 : SPItemEventReceiver  
  14.     {  
  15.        /// <summary>  
  16.        /// 已刪除項.  
  17.        /// </summary>  
  18.        public override void ItemDeleted(SPItemEventProperties properties)  
  19.        {  
  20.            base.ItemDeleted(properties);  
  21.        }  
  22.     }  
  23. }  

SharePoint的ItemDeleted方法是重載了SPItemEventReceiver類中的方法來實現後刪除事件的。

對於ItemDeleted事件表示列表項數據已經從列表中徹底刪除之後發生的事件,是取消不掉的,即使使用了properties.Cancel = true;也是取消不掉刪除的列表項的。

如果要想在列表項被刪除之後發送電子郵件,則可以使用SPUtility.SendEmail對象發送,簡單的格式如下:

SPUtility.SendEmail(properties.OpenWeb(), false, false, "收件人地址", "郵件內容", "郵件內容");

如果想對當前登錄人發送郵件,則可以使用properties參數獲取當前登錄人的郵件地址,C#代碼如下:

本文全文:http://www.360sps.com/item/65f54008775548ca91929e08ddb97574.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章