2008-11-17 62 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(); 
} 
相关问题