a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁(yè) > 學(xué)院 > 編程設(shè)計(jì) > 正文

SharePoint 2007圖文開(kāi)發(fā)教程(5) 體驗(yàn)Event Handler

2020-07-14 13:15:48
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Event Handler

Event Handler是SharePoint中與文檔庫(kù)或列表相關(guān)聯(lián)的事件處理程序,當(dāng)我們對(duì)項(xiàng)目進(jìn)行某些操作時(shí),Event Handler就會(huì)截獲這個(gè)事件,然后相應(yīng)的進(jìn)行操作。功能上比較像數(shù)據(jù)庫(kù)中的觸發(fā)器。比如:刪除某個(gè)文件時(shí)向管理員發(fā)送一個(gè)郵件,添加一個(gè)列表時(shí)進(jìn)行其他操作等等。
和2.0相比,WSS3.0對(duì)Event Handler提供了更強(qiáng)大的支持,如:列表,文檔庫(kù),內(nèi)容類型。并且支持同步和異步的操作等。

為SharePoint提供一個(gè)Event Handler并不是很費(fèi)力,主要包括:開(kāi)啟Event Handler支持,編寫Event Handler程序,向SharePoint中部署Event Handler。接下來(lái)逐一說(shuō)明一下。

開(kāi)啟Event Handler支持

默認(rèn)情況下是不開(kāi)啟Event Handler支持的,需要我們手動(dòng)開(kāi)啟:進(jìn)入應(yīng)用程序管理---進(jìn)入Web應(yīng)用程序常規(guī)設(shè)置。

開(kāi)啟事件處理程序:

這樣就完成了對(duì)Event Handler開(kāi)啟的支持。

編寫Event Handler程序

SharePoint的Event Handler其實(shí)是一個(gè)類,這個(gè)類主要繼承WSS中的SPWebEventReceiverSPEmailEventReceiverSPListEventReceiverSPItemEventReceiver,IListEventSink類,并且重寫相應(yīng)的方法來(lái)完成我們的需求。

這里做個(gè)簡(jiǎn)單的例子,當(dāng)我們刪除一個(gè)Items時(shí),向日志文件中添加一條記錄。

直接看代碼:

C# Code復(fù)制內(nèi)容到剪貼板

  1. using System;   
  2. using System.Collections.Generic;   
  3. using System.Text;   
  4. using System.IO;   
  5.   
  6. using Microsoft.SharePoint;   
  7.   
  8. namespace EventHandlerText   
  9. {   
  10.     public class ItemLogEvent : SPItemEventReceiver   
  11.     {   
  12.         /// <summary>   
  13.         /// 重寫ItemDeleting,向日志文件寫數(shù)據(jù)   
  14.         /// </summary>   
  15.         public override void ItemDeleting(SPItemEventProperties properties)   
  16.         {   
  17.             string path = @"c:/Log.txt";   
  18.   
  19.             string text = "刪除Item" + ":" + DateTime.Now.ToString();   
  20.   
  21.             StreamWriter writer = new StreamWriter(path);   
  22.   
  23.             writer.Write(text);   
  24.   
  25.             writer.Close();   
  26.         }   
  27.   
  28.     }   
  29. }  

是不是很簡(jiǎn)單,接下來(lái)我們按照為WebPart添加密鑰文件的方法,為我們的Event Handler添加密鑰文件,添加的目的我在部署的時(shí)候再說(shuō)。這樣,簡(jiǎn)單的Event Handler就完成了。

向SharePoint中部署Event Handler

和WebPart有所不同的是,Event Handler的dll需要放到GAC(Global Assembly Cache)中,而不能放在SharePoint網(wǎng)站的bin文件夾中,所以我們生成的dll必須進(jìn)行強(qiáng)簽名,這也就是上面為什么添加密鑰文件的目的。

GAC的系統(tǒng)路徑為:C:/WINDOWS/assembly,直接將生成的Event Handler dll拖入到這個(gè)路徑中即可。

先來(lái)看下SharePoint中的情況:

在我們先前創(chuàng)建的網(wǎng)站中,我創(chuàng)建了一個(gè)文檔庫(kù)的List,并且上傳了一個(gè)word文件,我們的Event Handler就是要添加到這里。

接下來(lái)就是將這個(gè)Event Handler部署到SharePoint中。可以通過(guò)代碼的形式,也可以通過(guò)Feature的形式。這里介紹下代碼的形式。

創(chuàng)建一個(gè)批處理程序(當(dāng)然win程序也可以),添加如下代碼:

C# Code復(fù)制內(nèi)容到剪貼板
  1. using System;   
  2. using System.Collections.Generic;   
  3. using System.Text;   
  4.   
  5. using Microsoft.SharePoint;   
  6.   
  7. namespace RegisterEvent   
  8. {   
  9.     class Program   
  10.     {   
  11.         static void Main(string[] args)   
  12.         {   
  13.             try  
  14.             {   
  15.                 SPSite site = new SPSite("http://gao:8000/sites/Brian_Publication/");//指定網(wǎng)站   
  16.   
  17.                 SPWeb web = site.OpenWeb();   
  18.   
  19.                 SPList list = web.Lists["文檔庫(kù)"];//指定List   
  20.   
  21.                 list.EventReceivers.Add(SPEventReceiverType.ItemDeleting, "EventHandlerText, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9d965453379ac249""EventHandlerText.ItemLogEvent");//添加Event Handler   
  22.   
  23.                 Console.WriteLine("發(fā)布完成");   
  24.   
  25.                 Console.ReadLine();   
  26.             }   
  27.             catch (Exception ex)   
  28.             {   
  29.                 Console.WriteLine(ex.Message);   
  30.                 Console.ReadLine();   
  31.             }   
  32.               
  33.         }   
  34.     }   
  35. }  

代碼很容易,想必大家一看就能明白,找到工程生成的可執(zhí)行文件,運(yùn)行:

 這樣就代表我們的Event Handler發(fā)布成功啦!至此,Event Handler的部署工作也就完成啦!

最后我們來(lái)測(cè)試下,進(jìn)入文檔庫(kù),刪除那個(gè)“LINQ中文教程”word文件。到C:/下看下Log.txt:

OK,我們的Event Handler執(zhí)行了,實(shí)現(xiàn)了我們想要的效果。 

小結(jié):有關(guān)Event Handler的內(nèi)容就介紹到這里,相信大家認(rèn)真的看一邊就可以很輕松的掌握,當(dāng)然有關(guān)Event Handler的內(nèi)容還不止這些,需要在平時(shí)的應(yīng)用中多多積累。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产亚洲一区二区av | 极品女神高潮呻吟av久久 | a级网站在线观看 | 日日摸夜夜添夜夜添亚洲女人 | 一区二区三区在线播放视频 | 黄色在线免费观看 | 国产一区二区在线不卡 | 中文字幕av亚洲精品一部二部 | 99精品全国免费观看视频软件 | 黄色片在线免费观看 | 亚洲成人在线网站 | 国产精品久久久久久久久久99 | 国产精品久久久久久久一区探花 | 九九亚洲精品 | av免费网站 | 欧美日韩一区二区三区不卡视频 | 91偷拍精品一区二区三区 | 国产午夜视频 | 亚洲蜜臀av乱码久久精品蜜桃 | 伊人网在线免费观看 | 国产精品国产三级国产专播品爱网 | 国产日韩精品视频 | 国产免费一区二区三区 | 欧美成人第一页 | 日本一区二区三区四区视频 | 国产成人精品亚洲男人的天堂 | 蜜臀av国产精品久久久久 | 精品影院 | 久久久久99999 | 羞羞网站免费观看 | 日韩精品在线视频 | 黄瓜av| 久草综合在线 | 在线日韩 | 色老头在线观看 | 久久久久久久av | 欧美成人一级视频 | 久草视频首页 | 国产精品一区二区在线观看网站 | 一本一道久久久a久久久精品91 | 国产97久久 |