事件注册
适用于: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