Sharepoint 2010 SP2010以编程方式将事件接收器附加到特定列表-对所有列表运行

Sharepoint 2010 SP2010以编程方式将事件接收器附加到特定列表-对所有列表运行,sharepoint-2010,eventreceiver,Sharepoint 2010,Eventreceiver,我将事件接收器附加到单个列表(Web范围)。但是ER会运行在Web上的所有列表中。这意味着部署ER的特性必须是Web范围。事实就是这样 该功能以编程方式激活,并绑定到TLS中列表的ER newProjectWeb.Features.Add(new Guid("57e21870-6285-4e0a-b9a0-067f774492ae")); 请看下面我的代码。我是不是错过了一个更新或者什么 提前谢谢你的帮助 public void AddEventReceiverToMemberList()

我将事件接收器附加到单个列表(Web范围)。但是ER会运行在Web上的所有列表中。这意味着部署ER的特性必须是Web范围。事实就是这样

该功能以编程方式激活,并绑定到TLS中列表的ER

newProjectWeb.Features.Add(new Guid("57e21870-6285-4e0a-b9a0-067f774492ae"));
请看下面我的代码。我是不是错过了一个更新或者什么

提前谢谢你的帮助

public void AddEventReceiverToMemberList()
    {
        try
        {
            _clsLists.AddEventReceiverToList(Web, ProjectMemberList.LIST_INTERNAL_NAME, typeof(SCMUProjectMemberList), SPEventReceiverType.ItemAdded);
            _clsLists.AddEventReceiverToList(Web, ProjectMemberList.LIST_INTERNAL_NAME, typeof(SCMUProjectMemberList), SPEventReceiverType.ItemDeleting);
            _clsLists.AddEventReceiverToList(Web, ProjectMemberList.LIST_INTERNAL_NAME, typeof(SCMUProjectMemberList), SPEventReceiverType.ItemUpdated);

            Web.Update();
        }
        catch (Exception)
        {
            throw;
        }
    }

public void AddEventReceiverToList(SPWeb web, string listName, Type eventReceiverClass, SPEventReceiverType eventType)
    {
        SPList list = this.GetListByName(web, listName);            

        string className = eventReceiverClass.FullName;
        string assemblyName = Assembly.GetAssembly(eventReceiverClass).FullName;

        list.EventReceivers.Add(eventType, assemblyName, className);
    }

如果要为单个列表运行事件接收器

提及


检查文章的结尾,将Elements.xml文件中Elements.xml中的属性“ListTemplateId”更改为“ListURL”: