以前我就会了,但过了一段时间后尽然忘了,看来还是要做个备份,免得下次又要在网上找个半天
首先是列表的EventHandler:
public class BBSEventHandler : SPItemEventReceiver
类必须继承SPItemEventReceiver.还要强命名.
然后是增加,更新,删除:
Code
public override void ItemAdded(SPItemEventProperties properties) //重载ItemAdded函数,监控新建列表条目事件
{}
public override void ItemUpdated(SPItemEventProperties properties)
{}
public override void ItemDeleting(SPItemEventProperties properties)
{}
最后部署是建个控制台,把生成的EXE放在服务器上,把EventHandler的DLL放在服务器里面的GAC里面,最后运行EXE(更新DLL要重启IIS)
Code
try
{
SPSite collection = new SPSite("http://eip.brc.com.cn"); //站点
SPWeb site = collection.OpenWeb("brcbbs"); //子站点
site.AllowUnsafeUpdates = true;
collection.AllowUnsafeUpdates = true;
SPList mylist = site.Lists["员工之家"];//列表
string assName = "BBSEventHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eb290592a78e57ee";
string className = "BBSEventHandler.BBSEventHandler";
mylist.EventReceivers.Add(SPEventReceiverType.ItemAdded, assName, className);
mylist.EventReceivers.Add(SPEventReceiverType.ItemUpdated, assName, className);
mylist.EventReceivers.Add(SPEventReceiverType.ItemDeleting, assName, className);
Console.WriteLine("It's OK");
Console.ReadLine();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
文档库的EventHandler:
public class Knowladge : IListEventSink
类要继承IListEventSink,并要强命名;
文档库的增加,更新,删除
Code
void IListEventSink.OnEvent(Microsoft.SharePoint.SPListEvent listEvent)
{
if (listEvent.Type == SPListEventType.Insert)//增加
{
}
if (listEvent.Type == SPListEventType.Delete)//删除
{
}
部署:把EventHandler的DLL放在服务器里面的GAC里面(更新DLL要重启IIS),然后在文档库设置的高级设置里,把DLL的信息填入(如果没有,请在管理中心->应用程序管理->Web 应用程序常规设置-> 向后兼容的事件处理程序->启用)
最后提供个查看DLL信息的工具/Files/jlydboy/Reflector.rar