Wednesday 4 February 2015

Attach Event Receiver to particular list / multiple list on Feature activation sharepoint

Here is code sample for Attaching Event Receiver to particular list / multiple list on Feature activation :


For single list :

public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            try
            {

                SPWeb oWeb = properties.Feature.Parent as SPWeb;

                SPList M1list = oWeb.Lists.TryGetList("M1List");
                if (M1list != null)
                {

                    M1list.EventReceivers.Add(SPEventReceiverType.ItemAdding, Assembly.GetExecutingAssembly().FullName, "GlobalSubmit.Intranet.DMParentFolder");
                    M1list.EventReceivers.Add(SPEventReceiverType.ItemUpdating, Assembly.GetExecutingAssembly().FullName, "GlobalSubmit.Intranet.DMParentFolder");
                }
     }
     catch (Exception ex)
            {
                throw ex;
            }
        }

For Multiple list: 
public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            try
            {

                SPWeb oWeb = properties.Feature.Parent as SPWeb;

                SPList M1list = oWeb.Lists.TryGetList(Constants.M1List);
                if (M1list != null)
                {

                    M1list.EventReceivers.Add(SPEventReceiverType.ItemAdding, Assembly.GetExecutingAssembly().FullName, "Class path of event receiver");
                    M1list.EventReceivers.Add(SPEventReceiverType.ItemUpdating, Assembly.GetExecutingAssembly().FullName, "Class path of event receiver");
                }

                SPList M2list = oWeb.Lists.TryGetList(Constants.M2List);
                if (M2list != null)
                {

                    M2list.EventReceivers.Add(SPEventReceiverType.ItemAdding, Assembly.GetExecutingAssembly().FullName, "Class path of event receiver");
                    M2list.EventReceivers.Add(SPEventReceiverType.ItemUpdating, Assembly.GetExecutingAssembly().FullName, "Class path of event receiver");
                }
               
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }

In this code class path is the only thing you need to worry about. If you pass it wrong then you will not be able to attach event receiver to list\library. Here is an example of class path:

If my solution name is "example.intranet" and my event receiver class name is "demoeventreceiver.cs" then my class path will be-  "example.intranet.demoeventreceiver".



For Deactivation Feature Click Here To See the code.

No comments:

Post a Comment