Skip to main content

Event Receiver for SharePoint list item


Before writing event receiver, you should have the Sharepoint list for which you are going to write the event receiver.If you have long term goal of creating multiple event receiver for lists, maintain a folder for these event receiver.
1.       Create a folder EventReceiver
2.       Right click on the folder EventReceiveràSelect Add optionàSelect New Item option



              3.       On the opened window, select the  Visual C#-->Sharepoint 2010 and now select the Event Receiver Template


           In the Name textbox which is  present below,Give the LISTNAMEEventReceiver. i.e suppose you are going write event receiver for ActionTracker list, then the event receiver’s name would be ActionTrackerEventReceiver
After entering the name , click on Add button.
            4.Wait for some time to connect to your local server




          


5. On the opened window, Select the List Item Events option from the dropdown of ‘What type of event receiver do you want?’ and select the list definition name to which you are going to write event receiver. For example here I have chosen ActionDefinition. Action is the Sharepoint list suffixed with the word Definition from the dropdown of ‘What item should be the event source’





6.  Now choose the options in the Handle the following Events. Suppose you want to do some basic operation like,
What you want to do if an item deletion, item addition, item updating?
Here you need to choose each event logically.
·         Suppose ,in simple english we say if the item is added then I want to perform some action
Simple thing is, logically we need to think that, it is ‘ITEM WAS Added’(after the item is added)..So you need to choose Item was added event type. Because you can perform some action after the item is added, so that you will get object after addition of item

·         Suppose, in simple english we say if the item is updated, I want to perform some action
Simple thing is , logically we need to think that, it is ‘ITEM WAS UPDATED’( after updating the item).
So you need to choose Item was updated event type. Because you can perform some action after the item is getting updated. , so that you will get object after updating the  item.

·         Suppose, in simple english  we say if the item is deleted , then I want to purpose some action. Here you should technically and logically understand some thing about the current event. If you choose the event type as Item was deleted , then you will lost the object reference itself , so that you can not perform any actions. So you need to choose Item is being deleted event type, so that you will get the object reference of item which is being deleted

There are many event types which you can choose as per the requirements.Now click on the Finish button


















7.       An Event receiver C# file will be opened for you to write the further logic. It will have 3 overridden methods which  are for An Item is being deleted,An Item was Added, An Item was Updated















Since you are going to write event receiver on items, you need to get the SPListItem object
    public override void ItemDeleting(SPItemEventProperties properties)
       {
           
         SPListItem item=properties.ListItem;
         UpdateSomethingDeleted(item,properties.web);
       }

          public override void ItemAdded(SPItemEventProperties properties)
       {
           SPListItem item=properties.ListItem;
         UpdateSomethingAdded(item,properties.web);
       }

         public override void ItemUpdated(SPItemEventProperties properties)
       {
           SPListItem item=properties.ListItem;
         UpdateSomethingUpdate(item,properties.web);
       }
        
In all the three methods we are trying to do some thing by getting the SPListeItem object

 8.       Now you need to add this event receiver file to the Feature  where the corresponding list is also present in the same feature,so that it will be available on the site level. On double clicking on the event receiver’s name which is present on left side , it will move to the right hand side so that , now you have added the event receiver to the feature


Hope this may help someone

Pradeepa Achar


Comments

Popular posts from this blog

The Fastest way to Export Schema of Sharepoint List

Many of my SharePoint Developer friends are struggling to get the Schema.xml file of a newly created list. The schema.xml file has the list's metadata information, by using the schema.xml, we can create the lis definition and paste this contents of Schema.xml to the Schema.xml file of the newly created List definition, so that you can deploy the list definition on another site. In order to do this, you guys might be following the procedure bu saving the site template and get the site definition solution. After this, you will open visual studio and import this solution and wait for few minutes. THIS IS A CRAPPY PROCEDURE..Why do you invest your time to get a schema of one or few list  by taking entire site definition?..If that site has lots of lists, then it will take lots of time. In my Research, i have found a the BEST  and quicker way to get schema.xml file of a particular list which you need Schema.xml. Follow the following procedure : Go to your site  click on the lis

How to avoid refreshing of page on clicking on BUTTON in jQuery?

Suppose you might have created a button on page.When you click on that button without page refresh some other custom things have to happen. But instead of that, on clicking on the button the page is getting refreshed. How to avoid this?.. Simple, The button click event has default event as refreshing the page. The solution is to "prevent the default event". $("#ButtonID").Click(function(e) {   e.preventDefault(); //Write your custom code here } ); Hope this may help Cheers Pradeepa Achar

This solution contains invalid markup or elements that cannot be deployed as part of a sandboxed solution. Solution manifest for solution 'cc218449-78b3-4430-b401-4884977560e2' failed validation, file manifest.xml, line 11, character 4: The element 'Solution' in namespace 'http://schemas.microsoft.com/sharepoint/' has invalid child element 'TemplateFiles' in namespace 'http://schemas.microsoft.com/sharepoint/'. List of possible elements expected: 'FeatureManifests, ActivationDependencies' in namespace 'http://schemas.microsoft.com/sharepoint/'. Troubleshoot issues with Microsoft SharePoint Foundation. Correlation ID: oplh6595a-a6hg-416f-a85f-a173bp03dda6 Date and Time: 30/10/2013 13:33:18

By looking at this bug you may get shocked and may not understand why this is happening. I can say, you have developed a wsp of farm solution, not the sandboxed solution  using visual studio and added some OOTB webparts such as visual webparts and trying to deploy the solution via solution gallery directly on to the sharepoint site. It is so simple.Understand that, when you create a .wsp file using visual studio, you deploy as farm solution. But when you try to deploy the same solution from site settings-> solution gallery, you deploy it as sand boxed solution. In this situation ,the "TemplateFiles" elements refers to the items that will be copied into the web servers. This is allowed only in farm solutions , not in sandboxed solutions. I suggest you guys to deploy the solution either using stsadm command or powershell command, so that it will work fine.If anyone wants to know about how to deploy using powershell command you can refer the   techNet  document for