2008-11-17 3 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

Только этот список или этот список на каждом сайте? Я тестировал код, который запускается, когда происходит событие, и я использовал nice little tool из u2u, что позволяет мне добавлять или удалять обработчики событий в списке.

This MSDN article хороший грунт.

0

Взгляните на код, который поставляется с инструментом из u2u, что я отправил ранее. Это удобный инструмент, когда вы работаете с обработчиками событий.

+0

Он даже позволяет удалить обработчики событий :-) – 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(); 
} 
Смежные вопросы