2008-11-17 66 views

回答

3

得到了答案。我們需要運行這個代碼,也許在一個控制檯應用程序。我仍然沒有得到如何刪除事件處理程序一旦被添加,雖然...

string siteUrl = Console.ReadLine(); 
SPSite site = new SPSite(siteUrl); 
SPWeb web = site.OpenWeb(); 
string listName = Console.ReadLine(); 

SPList list = web.Lists[listName]; 
string assemblyName = "Issue.EventHandler, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=89fde668234f6b1d"; 
string className = "Issue.EventHandler.IssueEventHandler"; 

list.EventReceivers.Add(SPEventReceiverType.ItemUpdated, assemblyName, className); 
2

只是在每個網站的列表或列表? 我一直在測試事件發生時運行的代碼,並且使用了u2u中的nice little tool,這允許我爲每個列表添加或刪除事件處理程序。

This MSDN article是一個很好的底漆。

0

看看隨從U2U工具我之前發佈的代碼。當您使用事件處理程序時,它是一個方便的工具。

+0

它甚至可以讓你刪除eventhandlers :-) – Kasper 2009-02-03 21:58:19

2

另一種選擇是「SharePoint Events Manager」。

事件管理器是SharePoint的一項功能,它允許管理員直接使用瀏覽器管理附加到其站點列表和文檔庫的事件。

這個簡單的功能可以通過列表設置菜單上的新項目來管理列表和文檔庫上的事件。

您可以查看,添加和刪除事件,甚至可以從程序集名稱中自動找到感興趣的類和事件。

您可以在此下載此功能,並使用「stsadm -o addsolution -filename GatWeb.SharePoint.EventsManager.wsp」進行安裝。

此功能以法語和英語本地化。

2

我最近在我們的Sharepoint SIG上就這個問題發表了演講。幻燈片和工具是available here。 您可以

  • 寫一個控制檯應用程序要做到這一點
  • 編寫使用的代碼在你的控制檯應用程序一個功能部署到適當的列表
  • 使用PowerShell
  • 使用布賴恩·威爾遜的admin tool
1

您可以使用此代碼移除事件處理程序:

for (int i = 0; i < olist.EventReceivers.Count; i++) { 
    olist.EventReceivers[i].Delete(); 
} 
相關問題