今天查找如何自定义菜单的时候,G到了MOSS中文网,不错:)
http://www.mosstec.cn/html/c16/2008-07/47.htm
SPItemEventReceiver是常规EventHandler编写继承的基类之一,并列于:SPItemEventDataCollection、SPItemEventReceiver、SPItemEventProperties之中。该基类提供了丰富的支持列表项,文档库项【Item】的支持,支持事件包含:ItemAdded、ItemAdding、ItemAttachmentAdded、ItemAttachmentAdding、ItemAttachmentDeleted、ItemAttachmentDeleting、ItemCheckedIn、ItemCheckedOut、ItemCheckingIn、ItemCheckingOut、ItemDeleted、ItemDeleting、ItemFileConverted、ItemFileMoved、ItemFileMoving、ItemUncheckedOut、ItemUncheckingOut、ItemUpdating、ItemUpdated
其中加粗部分是我们常用的事件,我们可以在重写该事件中增加我们的逻辑,增加各种业务逻辑,起作用类似SQL Server2005或者2000的触发器的工作,可以用于维持数据的一致性,数据的完整性,处理一些状态等工作。EventHandler为我们提供了灵活的控制方法和机制,而且,在MOSS2007中增加了对列表库的支持,使得我们的工作更加的灵活。
以上时间的支持都是基于SPItemEventReceiver的,所以我们编写基于SPItemEventReceiver的EventHandler的步骤如下:
1、打开VS2005 OR VS2008;
2、选择“文件”-》“新建”-》“项目”,选择类库模板,确定就新建了一个类;
3、我们修改默认的类名为我喜欢的类名,或者按照命名规则去编写名称,添加对Microsoft.SharePoint.dll的引用;
4、将我们的类继承于SPItemEventReceiver;
5、重写需要的事件,当前列表的基本信息可以从SPItemEventProperties properties的properties中获得;
properties包含几个属性,其中Item就是代表当前触发事件的项【Item】。
6、签名,为我们的程序签名,使编译后的DLL库具有强名称特性。
7、编译。
我想这个时候您就有了一个可以使用DLL了。
使用本站提供的Assembly查看工具查看相关信息,在服务器上新建一个工程,Console的工程也可以,在Main里面加入以下代码:
static void Main(string[] args)
{
SPSite site = new SPSite(@"SiteUrl");//SharePoint网站地址
SPWeb web = site.AllWebs[0];//子站地址这里可以使用子站的GUID
SPList lsit = web.Lists["ListName"];//注册事件的列表名称
string strClassName = "ClassName";//查看到的类名【使用工具或者别的办法】
string strAssembly = "AssemblyInfo";//查看到的Assembly信息
lsit.EventReceivers.Add(SPEventReceiverType.ItemAdded,strAssembly,strClassName);
//lsit.EventReceivers.Add(SPEventReceiverType.ItemUpdated, strAssembly, strClassName);
Console.WriteLine("Install ok...");
Console.ReadKey();
}
注意: 这里也要添加Microsoft.SharePoint.dll的引用