页面库无法捕获到Added事件?

标题党一下。

问题发生在一个文档库(文档模板是“空白页”)中,写了一个Added的事件处理程序,把标题字段改成文件名(不带扩展名的),但是发现新建页面的时候(不是上载)没效果。难道没有捕获到Added事件?

经过单点调试,发现事件是捕获到了,因为里面抛出一个异常导致没有正常执行。

很奇怪的问题:在Added事件中,properties.ListItem居然是null!(ListItemID是0),一般而言只有在Adding的时候才是null(因为Adding时条目还没有真正被创建出来),不知道是不是SharePoint的bug,不知道是不是在某些hotfix更新过了(我对hotfix的跟踪不是很及时。。。),也不知道在其他文档模板的情况下有没有问题。

解决方法是这样的:

   1: using(SPWeb web = properties.OpenWeb())
   2: {
   3:   SPFile file = web.GetFile(properties.AfterUrl);
   4:   SPListItem item = file.Item;
   5:   // do something with the item
   6: }

可以看到,AfterUrl是可以拿到这个新页面的地址的,而且可以正常拿到文件和条目,说明在Added的这个时候条目已经出现了,但是为什么直接用properties.ListItem拿不到呢?有时间的话可以去挖掘一下……

posted on 2009-02-17 17:47  Erucy  阅读(161)  评论(0编辑  收藏  举报

导航