Регистрация обработчика событий для одного списка - PullRequest
3 голосов
/ 17 ноября 2008

У меня есть обработчик событий sharepoint, который я хочу активировать для одного списка, а не для всех списков на сайте. Как мне это сделать?

Ответы [ 6 ]

3 голосов
/ 17 ноября 2008

Получил ответ. Нам нужно запустить этот код, возможно, в консольном приложении. Я до сих пор не понял, как удалить обработчик событий после его добавления ...

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 голосов
/ 17 ноября 2008

Я недавно выступил на нашей SIG Sharepoint с этой проблемой. Слайды и инструменты доступны здесь . Вы можете

  • написать консольное приложение для этого
  • написать функцию, которая использует код в консольном приложении для развертывания в соответствующий список
  • использовать PowerShell
  • используйте административный инструмент Брайана Уилсона
2 голосов
/ 17 ноября 2008

Другой альтернативой является " Менеджер событий SharePoint ".

Диспетчер событий - это функция для SharePoint, которая позволяет администраторам управлять событиями, прикрепленными к спискам их сайтов и библиотекам документов, непосредственно с помощью браузера.

Эта простая функция позволяет управлять событиями в списках и библиотеках документов с помощью нового пункта в меню настроек списка.

Вы можете просматривать, добавлять и удалять события и даже автоматически находить интересные классы и события из имени сборки.

Вы можете загрузить эту функцию здесь и установить ее, используя "stsadm -o addolution -filename GatWeb.SharePoint.EventsManager.wsp".

Эта функция локализована на французском и английском языках.

2 голосов
/ 17 ноября 2008

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

Эта статья MSDN - хороший учебник.

1 голос
/ 06 июля 2011

Вы можете использовать этот код для удаления обработчиков событий:

for (int i = 0; i < olist.EventReceivers.Count; i++) {
    olist.EventReceivers[i].Delete();
}
0 голосов
/ 17 ноября 2008

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

...