Although it’s simple but it’s a little bit tricky. Adding / removing an event receiver to a list and content type is the same you just need to use the appropriate collection is an SPWeb object.
Here is how to add / remove an event receiver to / from a list:
# The following code registers an event receiver for when an item is being added to a list $web = Get-SPWeb "http://yourwebsiteurl" $list = $web.Lists["your list name"] $list.EventReceivers.Add("ItemAdding", "Full Assembly Name", "Full.Class.Name")
Removing an event receiver is as easy as:
# Be careful about the index value for when you have more than one event receiver! $list.EventReceiver[0].Delete()
As you can see below adding an event receiver to a content type is very similar:
# The following code registers an event receiver for when an item is being added to a list $web = Get-SPWeb "http://yourwebsiteurl" $ctype = $web.ContentTypes["your content type name"] $ctype.EventReceivers.Add("ItemAdding", "Full Assembly Name", "Full.Class.Name")
And so is deleting it:
# Be careful about the index value for when you have more than one event receiver! $ctype.EventReceiver[0].Delete()
Now more important is the tricky part. If you have used this content type to create other / list instances then you should also call the following command to propagate the change:
$ctype.Update($true)
Leave a Reply