SPItemEventProperties Class

Contains properties for asynchronous list item event handlers, and serves as a base class for Before synchronous event handlers.

Inheritance Hierarchy

System.Object
  Microsoft.SharePoint.SPEventPropertiesBase
    Microsoft.SharePoint.SPItemEventProperties

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
Public NotInheritable Class SPItemEventProperties _
    Inherits SPEventPropertiesBase _
    Implements IDisposable

Dim instance As SPItemEventProperties
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
public sealed class SPItemEventProperties : SPEventPropertiesBase, 
    IDisposable

Remarks

The SPItemEventProperties class holds information about an item event, including fixed properties of the event such as event type, user name, and URL; it also includes Before and After properties of the event. For After events, the definitions of Before and After properties are straightforward: Before properties refer to settings that existed before the event occurred, and After properties refer to the settings that exist after the event has occurred. For Before events, however, Before properties refer to current item settings before the event occurs, while After properties refer to settings the item will have after the event occurs.

Examples

The following code example uses the SPItemEventProperties class to limit the number of items that can be added to a list.

using System;
using Microsoft.SharePoint;

namespace Example_Namespace
{
    public class Class_Name : SPItemEventReceiver
    {
        public override void ItemAdding(SPItemEventProperties properties)
        {
            using(SPWeb oWebsite = new SPSite(properties.SiteId).OpenWeb(properties.RelativeWebUrl))
            { 
                SPListItemCollection collItems = oWebsite.Lists[properties.ListTitle].Items;

                if (collItems.Count > 150)
                {
                    properties.Cancel = true;
                    properties.ErrorMessage = "Adding items to this list is not supported because it already contains " + 
                        colItems.Count.ToString() + " items.";
                }
            }
        }
    }
}

Note

Certain objects implement the IDisposable interface, and you must avoid retaining these objects in memory after they are no longer needed. For information about good coding practices, see Best Practices: Using Disposable Windows SharePoint Services Objects.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

SPItemEventProperties Members

Microsoft.SharePoint Namespace