SharePoint Foundation 2010 中的新事件绑定功能

上次修改时间: 2010年4月8日

适用范围: SharePoint Foundation 2010

本文内容
SP 网站级绑定
XML 事件接收器绑定
通过列表模板进行事件绑定

Microsoft SharePoint Foundation 2010 对可用于绑定事件的范围和方法进行了扩展。其中一项创新是能够在网站集范围 (SPSite) 内绑定事件,并使您能够绑定范围限定为单个网站 (SPWeb) 的 XML 事件接收器。

SP 网站级绑定

为了支持用于列表和网站创建的增强功能,SharePoint Foundation 2010 支持 SPSite 级别的事件接收器集合。像其他事件接收器集合一样,此集合接受来自 SPWebEventReceiverSPListEventReceiverSPItemEventReceiver 对象的绑定。所有这些事件类型都可限定在网站集级别(即 SPSite)。但是,SPEmailEventReceiver 对象在网站集级别不起作用,这是由于实现此对象的方式所致。

XML 事件接收器绑定

SharePoint Foundation 2010 支持在 SPWebSPSite 实例范围内使用 <Receivers> 标记来绑定 XML 事件接收器。

当 SharePoint 功能的范围限定在网站集级别时,<Receivers> 标记可能不明确。此标记可指示网站范围的事件绑定或首要网站的事件绑定。但请注意,default 行为的范围限定在网站级别。

因此,在将某个功能的范围限定在网站集级别时,可使用名为 Scope 的属性指定预期范围。将此属性设置为"Site"时,在某个范围限定为网站集的功能内定义的事件接收器将会在网站集级别进行绑定。将此属性设置为"Web"时,为网站集的某个功能定义的事件接收器将在该网站集的根网站处进行绑定。

通过列表模板进行事件绑定

SharePoint Foundation 2010 支持使用 ListTemplateId 属性的语义来根据 SPItemEventReceiver 事件接收器进行绑定。此方法会在创建列表的同时,创建一个范围限定为列表的事件接收器定义。

此功能的一个实践结果是,您可以在基于功能的 XML 中指定绑定,如下面的示例中所示。

<Receivers ListTemplateId="301">
   <Receiver>
      <Name>Blog post event handler for new trackbacks</Name>
      <Type>ItemAdded</Type>
      <SequenceNumber>1000</SequenceNumber>
      <Assembly>Trackback, Version=1.0.0.0, Culture=neutral,          PublicKeyToken=64e9de3efe88d9da</Assembly>
      <Class>Trackback.TrackbackEventsReceiver</Class>
      <Data>Property Logger</Data>
   </Receiver>
</Receivers>

上述 XML 绑定一个名为 TrackbackEventsReceiver 的类,该类派生自 SPItemEventReceiver 类。TrackbackEventsReceiver 将为模板 ID 类型为"301"的所有列表(在创建这些列表时)或为现有列表(在激活各个功能时)实现 ItemAdded(SPItemEventProperties) 方法。

SharePoint Foundation 2010 还支持基于指定内容类型的 XML 中的 SPItemEventReceiver 对象的事件绑定。

请参阅

概念

SharePoint Foundation 2010 中的新事件