Пример. Создание обработчика событий элемента списка
Дата последнего изменения: 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
Проверка безопасности и отправка данных для обновления