Поделиться через


Пример. Создание обработчика событий элемента списка

Дата последнего изменения: 9 апреля 2010 г.

Применимо к: SharePoint Foundation 2010

В следующем примере показаны основные шаги для создания обработчика событий. В этом примере — обработчик событий, исполняющий код перед удалением или после добавления элемента списка. Пример действителен для списков сообщений: выполняется добавление текста в текстовую часть новых элементов, но отменяется попытка удаления существующих элементов.

Сборка обработчика событий в Microsoft Visual Studio создается путем создания библиотеки классов. Добавьте ссылку в Microsoft.SharePoint.dll и унаследуйте ее от базового класса Microsoft.SharePoint.SPItemEventReceiver, как показано в следующем примере.

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;

namespace MyEventHandlers

{
    public class SimpleEventHandler : SPItemEventReceiver
    {
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SharePoint

Namespace MyEventHandlers

    Public Class SimpleEventHandler
        Inherits SPItemEventReceiver
    End Class
End Namespace

Экземпляр объекта класса создается при возникновении событий в списке. Разработчик может переопределить методы базового класса для событий, которые требуется обработать. Переопределению подлежат следующие методы класса SPItemEventReceiver:

В данном примере показано переопределение двух методов: ItemDeleting и ItemAdded. Следует учесть, что суффикс "ing" указывает на синхронную обработку события перед фактическим совершением действия, а суффикс "ed" обозначает асинхронную обработку события после совершения действия.

public override void ItemDeleting(SPItemEventProperties properties)
{
    properties.Cancel = true;
    properties.ErrorMessage = "Deleting is not supported.";
}
Public Overrides Sub ItemDeleting(ByVal properties As SPItemEventProperties)
        properties.Cancel = True
        properties.ErrorMessage = "Deleting is not supported."
End Sub

Данные, связанные с элементом списка, содержатся в свойстве ListItem. Доступ к значениям этого свойства возможен при использовании контейнера свойств AfterProperties.

Вторым переопределяемым методом является метод ItemAdded. В следующем примере используется свойство ListItem для возврата объекта, который представляет новый элемент списка, а затем изменяется текстовая часть элемента.

public override void ItemAdded(SPItemEventProperties properties)
{
    SPListItem oItem = properties.ListItem;
    oItem["Body"] = "Body text maintained by the system.";
    oItem.Update();
}
Public Overrides Sub ItemAdded(ByVal properties As SPItemEventProperties)
    Dim oItem As SPListItem = properties.ListItem
    oItem("Body") = "Body text maintained by the system."
    oItem.Update()
End Sub

Необходимо зарегистрировать приемники событий ItemDeleting и ItemAdded, как описано в разделе Привязка обработчика событий SharePoint Foundation.

См. также

Задачи

Создание компонента обработчика событий

Концепции

Привязка обработчика событий SharePoint Foundation

Регистрации событий

Проверка безопасности и отправка данных для обновления

Несанкционированное получение прав

Использование компонентов