Class For the Event Receiver
using System;
using Microsoft.SharePoint;
namespace Bijaya {
public class VendorListEventReceiver : SPListEventReceiver {
public override void FieldAdding(SPListEventProperties properties) {
properties.ErrorMessage = "You cannot change this list schema!";
properties.Cancel = true;
}
public override void FieldUpdating(SPListEventProperties properties) {
properties.ErrorMessage = "You cannot change this list schema!";
properties.Cancel = true;
}
public override void FieldDeleting(SPListEventProperties properties) {
properties.ErrorMessage = "You cannot change this list schema!";
properties.Cancel = true;
}
}
}
Bind the event handlers within this event receiver class to a list type:
<elements xmlns="http://schemas.microsoft.com/sharepoint/">
<receivers listtemplateid="10001">
<receiver>
<name>Field Adding Event</name>
<type>FieldAdding</type>
<assembly>LitwareTypes, [full 4-part assembly name goes here] </assembly>
<class>LitwareTypes.VendorListEventReceiver</class>
<sequencenumber>1000</sequencenumber>
</receiver>
<receiver>
<name>Field Updating Event</name>
<type>FieldUpdating</type>
<assembly>LitwareTypes, [full 4-part assembly name goes here] </assembly>
<class>LitwareTypes.VendorListEventReceiver</class>
<sequencenumber>1000</sequencenumber>
</receiver>
<receiver>
<name>Field Deleting Event</name>
<type>FieldDeleting</type>
<assembly>LitwareTypes, [full 4-part assembly name goes here] </assembly>
<class>LitwareTypes.VendorListEventReceiver</class>
<sequencenumber>1000</sequencenumber>
</receiver>
</receivers>
</elements>
Bind Event Receiver to a List Instance:
public override void FeatureActivated(SPFeatureReceiverProperties properties) {
SPSite siteCollection = (SPSite)properties.Feature.Parent;
SPWeb site = siteCollection.RootWeb;
SPList lstVendors = site.Lists["Vendors"];
string asmName = "Bijaya, [full 4-part assembly name goes here] ";
string listReceiverName = "Bijaya.VendorListEventReceiver";
// add event receiver to fire before, new column is added
lstVendors.EventReceivers.Add(SPEventReceiverType.FieldAdding,
asmName, listReceiverName);
// add event receiver to fire before existing column is updated
lstVendors.EventReceivers.Add(SPEventReceiverType.FieldUpdating,
asmName, listReceiverName);
// add event receiver to fire before existing column is updated
lstVendors.EventReceivers.Add(SPEventReceiverType.FieldDeleting,
asmName, listReceiverName);
}
using System;
using Microsoft.SharePoint;
namespace Bijaya {
public class VendorListEventReceiver : SPListEventReceiver {
public override void FieldAdding(SPListEventProperties properties) {
properties.ErrorMessage = "You cannot change this list schema!";
properties.Cancel = true;
}
public override void FieldUpdating(SPListEventProperties properties) {
properties.ErrorMessage = "You cannot change this list schema!";
properties.Cancel = true;
}
public override void FieldDeleting(SPListEventProperties properties) {
properties.ErrorMessage = "You cannot change this list schema!";
properties.Cancel = true;
}
}
}
Bind the event handlers within this event receiver class to a list type:
<elements xmlns="http://schemas.microsoft.com/sharepoint/">
<receivers listtemplateid="10001">
<receiver>
<name>Field Adding Event</name>
<type>FieldAdding</type>
<assembly>LitwareTypes, [full 4-part assembly name goes here] </assembly>
<class>LitwareTypes.VendorListEventReceiver</class>
<sequencenumber>1000</sequencenumber>
</receiver>
<receiver>
<name>Field Updating Event</name>
<type>FieldUpdating</type>
<assembly>LitwareTypes, [full 4-part assembly name goes here] </assembly>
<class>LitwareTypes.VendorListEventReceiver</class>
<sequencenumber>1000</sequencenumber>
</receiver>
<receiver>
<name>Field Deleting Event</name>
<type>FieldDeleting</type>
<assembly>LitwareTypes, [full 4-part assembly name goes here] </assembly>
<class>LitwareTypes.VendorListEventReceiver</class>
<sequencenumber>1000</sequencenumber>
</receiver>
</receivers>
</elements>
Bind Event Receiver to a List Instance:
public override void FeatureActivated(SPFeatureReceiverProperties properties) {
SPSite siteCollection = (SPSite)properties.Feature.Parent;
SPWeb site = siteCollection.RootWeb;
SPList lstVendors = site.Lists["Vendors"];
string asmName = "Bijaya, [full 4-part assembly name goes here] ";
string listReceiverName = "Bijaya.VendorListEventReceiver";
// add event receiver to fire before, new column is added
lstVendors.EventReceivers.Add(SPEventReceiverType.FieldAdding,
asmName, listReceiverName);
// add event receiver to fire before existing column is updated
lstVendors.EventReceivers.Add(SPEventReceiverType.FieldUpdating,
asmName, listReceiverName);
// add event receiver to fire before existing column is updated
lstVendors.EventReceivers.Add(SPEventReceiverType.FieldDeleting,
asmName, listReceiverName);
}