一个简单的document library event handler


这是一个简单的eventhandler,就是在document lirary中Insert和Update一个Item时,更改一个Field的值为这个文件的URL.
编写doucment library的eventhandler需要继承IListEventSink 接口
代码如下:

 1      public   class  DocumentLibraryEvent : IListEventSink 
 2      {
 3        IListEventSink Members
31    }

这段代码很好理解,判断是Insert和Update并且包含这个字段,然后获取url修改field的值。
下面这段代码主要为解决新建一个文档时,去修改Selected字段值,抛出被checkout的异常。
这段代码来自 Jan Tielens' Bloggings
1
2                      while  (file.CheckOutStatus  !=  SPFile.SPCheckOutStatus.None)
3                      {
4                        System.Threading.Thread.Sleep(1000);
5                        file = web.GetFile(listEvent.UrlAfter);
6                    }


这段代码可以实现需求,但是总感觉不美。
似乎是应该这样去修改:
listEvent.PropertiesAfter[colName] = urlVal;
但我尝试了,没有作用!

部署:
1)首先,要打开document library的enventhandler,在central administration->Application Management
->Web Application General Settings
找到想要更改的Web Application,设置


2)把编译后的dll放入GAC
3)到一个想添加事件的document library->Settings->Advanced Settings添加程序集和类
一个简单的document library event handler_第1张图片

这样就OK了,我们的事件就会被执行了。


你可能感兴趣的:(document)