我正在为自定义列表模板添加ItemAdding事件接收器.事件接收器和列表模板都由相同的功能部署.同样的功能也会创建列表实例.
我遇到的问题是,为部署它的站点中的每个列表项触发了事件.eventreceivre的Elements.xml是:
<Receivers ListTemplateId="10200">
<Receiver>
<Name>ListEventReceiverItemAdding</Name>
<Type>ItemAdding</Type>
<Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
<Class>SharepoitProject.ListEventReceiver</Class>
<SequenceNumber>10000</SequenceNumber>
</Receiver>
</Receivers>
Run Code Online (Sandbox Code Playgroud)
我不确定我做错了什么我从这里开始或多或少做了什么.
环境:Sharepoint 2010与本网站上的发布功能
sharepoint sharepoint-2010 sharepoint-listtemplate eventreceiver
我为Wiki页面库创建了一个新的内容类型.我通过代码将此内容类型添加到库中(接口不允许这样).接下来,我为此内容类型添加了一个事件接收器(在ItemAdded和ItemAdding上).我的问题是没有任何事件发生.如果我将这些事件直接添加到wiki页面库,一切正常.有限制/错误/技巧吗?
我查看了使用SharePoint Manager附加到库的内容类型,并且在他的架构中缺少事件接收器的部分......我知道应该有类似的东西:
<XmlDocuments>
<XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/events">
<spe:Receivers xmlns:spe="http://schemas.microsoft.com/sharepoint/events">
<Receiver>
<Name>
</Name>
<Type>1</Type>
<SequenceNumber>10000</SequenceNumber>
<Assembly>RssFeedWP, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6722cbeba696def</Assembly>
<Class>RssFeedWP.ItemEventReceiver</Class>
<Data>
</Data>
<Filter>
</Filter>
</Receiver>
<Receiver>
<Name>
</Name>
<Type>10001</Type>
<SequenceNumber>10000</SequenceNumber>
<Assembly>RssFeedWP, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6722cbeba696def</Assembly>
<Class>RssFeedWP.ItemEventReceiver</Class>
<Data>
</Data>
<Filter>
</Filter>
</Receiver>
</spe:Receivers>
</XmlDocument>
Run Code Online (Sandbox Code Playgroud)
如果我使用SPM查看添加到站点的内容类型,我将此部分视为模式.
这是我的代码:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
using (SPWeb web = (SPWeb)properties.Feature.Parent)
{
// create RssWiki content type
SPContentType rssFeedContentType = new SPContentType(web.AvailableContentTypes["Wiki Page"],
web.ContentTypes, "RssFeed Wiki Page");
// add rssfeed url field to the new content type
AddFieldToContentType(web, …
Run Code Online (Sandbox Code Playgroud) 我们正在为客户构建一个Extranet sharepoint门户.每个客户都有一个网站.网站总数将在2000-3000之间.
当客户端上传新文档时,我需要将文档从SiteCollectionA/SiteA/DocumentLibrary复制到另一个网站集上的另一个全局列表.
我应该创建工作流来复制文档或事件监听器吗?上传后,客户端将被允许更新文档属性,这些更改也必须推送到全局列表中.
我的选择是事件倾听者,因为它更清洁,更便宜,更容易.我不是工作流程的专家,但我认为在2000多个站点上维护/更新/重新发布工作流将更难,然后是事件监听器.
你们有什么感想?
谢谢
sharepoint workflow sharepointdocumentlibrary eventreceiver documentlistener