事件注册

适用于:SharePoint 2016 |SharePoint Foundation 2013 |SharePoint Online |SharePoint Server 2013

在网站级别或网站集级别注册将用于实现筛选以响应事件的事件处理程序。

Receivers 元素可为列表项事件指定事件处理程序。

示例

若要为列表事件注册事件处理程序,请在 中创建 \\Template\\Features 一个 文件夹,以包含指定功能的范围和 ID 的 Feature.xml 文件,以及前一个文件引用的元素清单文件。

注册事件处理程序的 Feature.xml 文件看起来可能类似于下面的文件。

    <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>

元素指令清单文件可注册事件处理程序程序集并使其与列表类型相关联,下面的示例将列表类型指定为通知列表 (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>

事件处理程序的 .cs 文件可以使用 SharePoint Foundation 对象模型来响应事件。 有关使用对象模型创建自定义事件处理程序的信息,请参阅 SharePoint Foundation 2010 中的事件

下面的示例定义错误消息的内容,以在用户尝试修改列表中的项时显示该错误消息。

    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

另请参阅