2011-06-10 39 views
1

我试图创建一个功能来将我的事件处理程序注册到特定列表。我正在构建它,就像我会正常的功能一样。但是,我不知道如何定义我的Elements文件。我的功能的文件如下:在SP 2007中用于注册事件处理程序的清单文件

<?xml version="1.0" encoding="utf-8" ?> 
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> 
<Receivers ListTemplateId="101"> 
    <Receiver> 
     <Name>AddedEventHandler</Name> 
     <Type>ItemAdded</Type> 
     <SequenceNumber>10000</SequenceNumber> 
     <Assembly>ChangeContentTypeEventHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7bfc7c17f98031d7</Assembly> 
     <Class>ChangeContentTypeEventHandler.ChangeContentTypeEventHandler</Class> 
     <Data></Data> 
     <Filter></Filter> 
    </Receiver> 
</Receivers> 
</Elements> 

基于此,我将如何设置此事件处理程序的注册文件?

而且,这里是我的Feature.xml文件:

<?xml version="1.0" encoding="utf-8" ?> 
<Feature Scope="Web" Title="Change Content Type Event Handler" 
    Id="{27C2FDFF-ADA0-4984-955C-6448E182FA88}" 
    xmlns="http://schemas.microsoft.com/sharepoint/"> 
    <ElementManifests> 
     <ElementManifest Location="ListTemplates\ListManifest.xml"/> 
     <ElementFile Location="Messages\schema.xml"/> 
    </ElementManifests> 
</Feature> 

而且,这会是我的一部分为特征本身解包WSP以便它能够与功能部署?

在此先感谢

+0

我很困惑,你感到困惑。你的东西看起来正确。当你的功能被激活时,它会注册你的事件接收器。我假设您的Elements文件被命名为“ListManifest.xml”,正如您的Feature.xml文件中所引用的那样? – CBono 2011-06-10 18:19:28

+0

是的。也许措辞是不同的。有些人称之为约束力。该功能被安装并激活,但处理程序不会绑定到列表。所以,事件处理程序不会触发。 – 2011-06-13 15:16:29

回答

1

您有两种选择。您可以创建自定义列表模板,以便您可以在自己的元素文件中指定自定义列表模板的标识,也可以通过代码(功能接收器)附加您的事件接收器。

以声明方式注册事件接收者的问题是您只能指定列表模板ID(影响基于指定模板的所有列表),但不能指定单个列表名称或ID。

您可以在这篇文章中找到了这样的功能接收器的一个例子:http://www.sharepointdev.net/sharepoint--development-programming/whether-there-is-a-way-to-register-a-custom-event-handler-at-a-special-list-63446.shtml

相关问题