希望在明天

如果,你没有耐心等待成功的到来,那么,你将用一生的耐心去面对失败。

一个简单的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添加程序集和类

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


posted on   蒜头  阅读(1339)  评论(6编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
< 2007年8月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

导航

点击右上角即可分享
微信分享提示