OrionXL

Создание собственного обработчика событий (Event Receivers в Visual Studio 2010)

Роман Иванов @ 09:59 16.11.2010

В данной статье вы узнаете, как создать приемник событий для Sharepoint 2010 с помощью Visual Studio. Также Вы узнаете как записать в поле списка произвольный параметр.

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

Первым делом необходимо открыть Visual Studio и выбрать создать новый проект (Ctrl+Shift+N).

Создание проекта в Visual Studio для sharepoint

Создание проекта в Visual Studio для sharepoint

Далее выбираем шаблоны "Sharepoint->Приемник событий". Вводим имя проекта, можно оставить по умолчанию EventReceiverProject1. Жмем "ОК".

Указываем локальный сайт для отладки (можно http://localhost), выбираем как развернуть решение: изолированное или решение фермы. Изолированное решение устанавливается для каждого узла и может быть установлено пользователем с соответствующими правами, решение фермы устанавливается для всех узлов фермы и непосредственно администратором. Выберем изолированное решение.

Выбор параметров получателя сообщения в Visual Studio

Выбор параметров получателя сообщения в Visual Studio

Отметим события: Добавляется элемент (Item adding) и Обновляется элемент. Есть еще события: Добавлен элемент и Обновлен элемент. В первом случае события еще не добавлены в список и соответственно в базу данных, т.е. можно провести предварительную обработку с этими данными. Во втором случае (элемент добавлен и обновлен) данные уже добавлены в список - пост обработка. Тип приемника событий: "события элемента списка". Элемент, который будет источником событий: "настраиваемый список". Жмем "ОК".

MVS создаст проект, класс и две функции для перехвата событий - ItemAdding и ItemUpdating. Фактически наш обработчик готов. Можно компилировать проект. Этот обработчик будет перехватывать события добавления и изменения, только у источников типа "настраиваемый список" (для всех списков, которые присутствуют на узле, поэтому будьте внимательны).

Теперь добавим в поле списка свою запись. Наш настраиваемый список, который присутствует на сервере Sharepoint, содержит поля: ИД, Название, Сообщение, LoginName и называется "Простое обращение". Тип соответственно - "настраиваемый список". Задачей этого списка является прием, обработка и отображение сообщений от пользователей корпоративного портала. Мы же при отправке сообщения будем дописывать в поле LoginName, данные об учетной записи пользователя. Можно выбрать любое другое поле или информацию.

Хочу заметить, что информация с данными полученными из формы ввода, по нажатию кнопки "отправить", в случае пред обработки хранится в properties.AfterProperties, а не в properties.ListItems, здесь ее можно получить в пост событиях обработки, к примеру, Добавлен элемент (Element added). Имя списка доступно в properties.List.Title, учетная запись пользователя может быть получена из properties.UserLoginName.

В итоге код обработки примет вид:

/// <summary>
/// Добавляется элемент.
/// </summary>
public override void ItemAdding(SPItemEventProperties properties)
{
if (properties.List.Title == "Простое обращение")
{
properties.AfterProperties["LoginName"] = properties.UserLoginName.ToString();
};
base.ItemAdding(properties);
}

/// <summary>
/// Обновляется элемент.
/// </summary>
public override void ItemUpdating(SPItemEventProperties properties)
{
if (properties.List.Title == "Простое обращение")
{
properties.AfterProperties["LoginName"] = properties.UserLoginName.ToString();
};
base.ItemUpdating(properties);
}


Данный пример будет добавлять в поле "LoginName" данные учетной записи пользователя, который инициировал обращение (заявку). Более подробную информацию о том как работать с обработчиками событий или Sharepoint ищите на сайте Microsoft (http://msdn.microsoft.com/ru-ru/library/bb931739(v=office.12).aspx) или через поисковики!

Комментариев нет

Комментариев нет.

RSS-лента комментариев к этой записи.

Извините, обсуждение на данный момент закрыто.

алгоритмы, методы, программы - OrionXL