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

在SharePoint的一个文档库中尝试将新建页面的标题设置为文件名(不含扩展名),但发现Added事件处理程序未生效。通过调试发现,尽管Added事件触发了,但properties.ListItem却为null。为了解决这一问题,作者使用了另一种方法来获取文件及其对应的项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标题党一下。

问题发生在一个文档库(文档模板是“空白页”)中,写了一个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拿不到呢?有时间的话可以去挖掘一下……

转载于:https://www.cnblogs.com/erucy/archive/2009/02/17/2416088.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值