0

我将事件接收器附加到单个列表(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);
    }
4

2 回答 2

0

在 Elements.xml 文件中替换:

<Receivers ListTemplateId="100"> 经过

<Receivers ListUrl="Lists/Your List Name">

于 2014-05-21T06:12:48.567 回答
0

如果您想为单个列表运行事件接收器..

参考这里

检查帖子的结尾,在 Elements.xml 中将属性更改为“ListTemplateId”为“ListURL”

于 2012-09-04T08:15:03.140 回答