Класс SPItemEventReceiver
Предоставляет методы для треппинга события, происходящие с элементами. Этот класс никогда не инициализируется.
Иерархия наследования
System.Object
Microsoft.SharePoint.SPEventReceiverBase
Microsoft.SharePoint.SPItemEventReceiver
Пространство имен: Microsoft.SharePoint
Сборка: Microsoft.SharePoint (в Microsoft.SharePoint.dll)
Синтаксис
'Декларация
Public Class SPItemEventReceiver _
Inherits SPEventReceiverBase
'Применение
Dim instance As SPItemEventReceiver
public class SPItemEventReceiver : SPEventReceiverBase
Замечания
Экземпляр этого класса не создается, но класс приемника событий элемента из пользовательский обработчик событий должен наследовать от этого класса и переопределить его методы для типов событий, которые обрабатываются.
Если элемент перемещен, он обрабатывается так же, как элемент, который был удален, а затем добавить.
для записи событий в документах гарантируется свойства Before и After , но Before свойства недоступны для записи событий для элементов списка.
Примеры
Следующий пример кода использует этот класс для добавления элемента к указанному списку объявлений вложение при добавлении в список.
using System;
using Microsoft.SharePoint;
namespace Example_Namespace
{
public class Class_Name : SPItemEventReceiver
{
public override void ItemAttachmentAdded(SPItemEventProperties properties)
{
using(SPSite oSiteCollectionEvent = new SPSite(properties.SiteId))
{
SPWeb oSiteEvent = oSiteCollectionEvent.OpenWeb(properties.RelativeWebUrl);
SPListItemCollection oItemsEvent = oSiteEvent.Lists[properties.ListTitle].Items;
}
using(SPSite oSiteCollection = new SPSite("http://Top_Site"))
{
SPWeb oWebsite = oSiteCollection.OpenWeb("Website_Name");
SPList oList = oWebsite.Lists["Announcements"];
SPListItemCollection collListItems = oList.Items;
SPListItem oItem = collListItems.Add();
oItem["Title"] = properties.UserDisplayName + " added an attachment to " + oItemsEvent[properties.ListItemId].Title + " in list " + properties.ListTitle + " at " + properties.WebUrl;
oItem.Update();
}
}
}
}
Imports System
Imports Microsoft.SharePoint
Namespace Example_Namespace
Public Class Class_Name
Inherits SPItemEventReceiver
Public Overrides Sub ItemAttachmentAdded(ByVal properties As SPItemEventProperties)
Using oSiteCollectionEvent As New SPSite(properties.SiteId)
Dim oSiteEvent As SPWeb = oSiteCollectionEvent.OpenWeb(properties.RelativeWebUrl)
Dim oItemsEvent As SPListItemCollection = oSiteEvent.Lists(properties.ListTitle).Items
End Using
Using oSiteCollection As New SPSite("http://Top_Site")
Dim oWebsite As SPWeb = oSiteCollection.OpenWeb("Website_Name")
Dim oList As SPList = oWebsite.Lists("Announcements")
Dim collListItems As SPListItemCollection = oList.Items
Dim oItem As SPListItem = collListItems.Add()
oItem("Title") = properties.UserDisplayName & " added an attachment to " & oItemsEvent(properties.ListItemId).Title & " in list " & properties.ListTitle & " at " & properties.WebUrl
oItem.Update()
End Using
End Sub
End Class
End Namespace
Примечание
Некоторые объекты реализуют интерфейс IDisposable и следует избегать сохранения этих объектов в памяти, после они больше не нужны. Disposing Objectsсведения о рекомендованные методы программирования, см.
Потокобезопасность
Любые общедоступные элементы static (Shared в Visual Basic) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.