创建EventHandler步骤
1.新建一个类库
该类需继承基类 SPItemEventReceicer 如下示例
public class HrListHandler:SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
//base.ItemAdded(properties);
SPListItem item = properties.ListItem;
string name = item["应聘者"].ToString();
string time = Convert.ToDateTime(item["入职时间"]).ToShortDateString();
item["标题"] = name + "(" + time+")";
item.Update();
}
public override void ItemUpdated(SPItemEventProperties properties)
{
//base.ItemUpdated(properties);
SPListItem item = properties.ListItem;
string name = item["应聘者"].ToString();
string time = Convert.ToDateTime(item["入职时间"]).ToShortDateString();
item["标题"] = name + "(" + time + ")";
item.Update();
}
public override void ItemDeleting(SPItemEventProperties properties)
{
//base.ItemDeleting(properties);
properties.ErrorMessage = "不能删除应聘者信息";
properties.Cancel = true;
}
}
2.将生成的类库部署到程序集中
将dll文件拖入到C:/WINDOWS/assembly中即可部署
3.新建一个控制台应用程序
注册事件
如下示例
class Program
{
static void Main(string[] args)
{
SPSite site = new SPSite("http://huyifeng:9001/sites/wodeweb/");
SPWeb web = site.OpenWeb();
SPList lists = web.Lists["入职表"];
string assName = "HRListEventReceiver, Version=1.0.0.0, Culture=neutral, PublicKeyToken=43a8531282f805da";
string claName = "HRListEventReceiver.HrListHandler";
lists.EventReceivers.Add(SPEventReceiverType.ItemAdded, assName, claName);
lists.EventReceivers.Add(SPEventReceiverType.ItemUpdated, assName, claName);
lists.EventReceivers.Add(SPEventReceiverType.ItemDeleting, assName, claName);
Console.WriteLine("It's OK");
Console.ReadLine();
}
}
4.删除事件
class Program
{
static void Main(string[] args)
{
SPSite site = new SPSite("http://huyifeng:9001/sites/wodeweb/");
SPWeb web = site.OpenWeb();
SPList lists = web.Lists["入职表"];
for (int i = lists.EventReceivers.Count - 1; i >= 0; i--)
{
lists.EventReceivers[i].Delete();
}
Console.WriteLine("It's OK");
Console.ReadLine();
}
}