2012-09-03 2 views
0

Je joins un récepteur d'événements à une liste unique (portée Web). Mais l'ER s'exécute pour toutes les listes sur le Web. Ce question dit que la fonctionnalité, l'ER est déployée, doit être portée Web. C'est le cas.SP2010 Attacher un récepteur d'événements à une liste spécifique par programme - s'exécute pour toutes les listes

La fonction est activée par programmation liée à un ER d'une liste dans le TLS.

newProjectWeb.Features.Add(new Guid("57e21870-6285-4e0a-b9a0-067f774492ae")); 

S'il vous plaît voir mon code ci-dessous. Ai-je manqué une mise à jour ou quoi que ce soit?

Merci pour votre aide à l'avance.

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); 
    } 

Répondre

0

Si vous souhaitez exécuter le récepteur d'événements pour une liste unique ..

Reportez-vous Here

Vérifiez la fin du poste, changer l'attribut « ListTemplateId » à « ListURL » dans Elements.xml

0

Dans le fichier Elements.xml remplacer:

<Receivers ListTemplateId="100"> par

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

Questions connexes