Event Registrations

Applies to: SharePoint 2016 | SharePoint Foundation 2013 | SharePoint Online | SharePoint Server 2013

Register event handlers at the site or site collection level that you will use to implement filtering to respond to events.

The Receivers element specifies an event handler for list item events.

Example

To register an event handler for list events, create a folder in \\Template\\Features to contain a Feature.xml file that specifies the scope and ID of the Feature, and an elements manifest file that the former file references.

The Feature.xml file that registers an event handler might look like the following.

    <Feature
      Scope="Web"
      Title="Simple Updating Item Event Handler Registration"
      Id="A6B8687A-3200-4b01-AD76-09E8D163FB9A"
      xmlns="http://schemas.microsoft.com/sharepoint/">
      <ElementManifests>
        <ElementManifest Location="elements.xml"/>
      </ElementManifests>
    </Feature>

The elements manifest file registers the event handler assembly and associates it with a list type, which the following example specifies to be announcement lists (104).

    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <Receivers
        ListTemplateId="104">
        <Receiver>
          <Name>SimpleUpdateEvent</Name>
          <Type>ItemUpdating</Type>
          <SequenceNumber>10000</SequenceNumber>
          <Assembly>SimpleUpdateEventHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=10b23036c9b36d6d</Assembly>
          <Class>MS.Samples.SimpleItemUpdateHandler</Class>
          <Data></Data>
        </Receiver>
      </Receivers>
    </Elements>

The .cs file for the event handler can use the SharePoint Foundation object model to respond to events. For information about using the object model to create custom event handlers, see Events in SharePoint Foundation 2010.

The following example defines the content of an error message to display when users attempt to modify items in a list.

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

    namespace MS.Samples
    {
        public class SimpleItemUpdateHandler : SPItemEventReceiver
        {
            public override void ItemUpdating(SPItemEventProperties properties)
            {
                properties.Cancel = true;
                properties.ErrorMessage = "Updating data is not supported.";
            }
        }
    }

    Imports System
    Imports System.Collections.Generic
    Imports System.Text
    Imports Microsoft.SharePoint

    Namespace MS.Samples
        Public Class SimpleItemUpdateHandler
            Inherits SPItemEventReceiver
            Public Overrides Sub ItemUpdating(ByVal properties As SPItemEventProperties)
                properties.Status = SPEventReceiverStatus.CancelWithError
                properties.ErrorMessage = "Updating data is not supported."
            End Sub
        End Class
    End Namespace

See also