我正在使用成功触发 WebMoved 事件的SPWebEventReceiver侦听特定SPWeb。移动网页时,我使用新的位置/标题更新列表。
我希望能够在重命名时收听。我是否通过附加项侦听器并等待ItemUpdated事件来执行此操作?如果是这样,我会欣赏一小段代码!谢谢!
答案 0 :(得分:2)
看起来这是SharePoint OM的错误。 The event receiver is clearly supposed to fire when the name of a web is changed, but it does not.只有在更改Web的URL时才会触发。{/ 3>
答案 1 :(得分:0)
史蒂夫, 据我所知,SPWebEventReceiver仅在SPWeb上公开以下事件(http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spwebeventreceiver_members.aspx)
ItemAdded在SPItemEventReceiver中定义,适用于SPListItem对象。
SPWeb的Title属性存储在属性包(http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.properties.aspx)中。
在属性包上调用.Update()时,您似乎无法点击任何事件。标题更新时。
答案 2 :(得分:0)
问题:您想要进行哪些更改?因为例如任何元数据都可以存储在里面的列表中,这支持很多事件。
答案 3 :(得分:0)
我不相信这是一个错误,我相信这只是对文档的错误解释。如您所述,文档表明WebMoving和WebMoved事件是由网站的网址被修改或重命名触发的:
来自MSDN Doc:" Synchronous Before在现有网站重命名或移动到其他父对象之前发生的事件。"
然而,在UI中改变的是" name"该网站的标题,但网站的标题。 SPWeb对象确实有一个" Name"可以通过对象模型访问的属性,并且更新该Name属性并调用SPWeb.Update()实际上会触发WebMoved事件。问题是该属性不是通过网站的基于网络的设置页面公开的,只有"标题"字段已公开,此字段更改不会触发事件。虽然这看起来有点反直觉甚至误导,但如果你按字面意思阅读文档,它的行为完全符合记录。