在SPWeb上捕获标题更改事件

时间:2009-04-10 18:50:20

标签: sharepoint events moss spweb

我正在使用成功触发 WebMoved 事件的SPWebEventReceiver侦听特定SPWeb。移动网页时,我使用新的位置/标题更新列表。

我希望能够在重命名时收听。我是否通过附加项侦听器并等待ItemUpdated事件来执行此操作?如果是这样,我会欣赏一小段代码!谢谢!

4 个答案:

答案 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

  • SiteDeleted
  • SiteDeleting
  • WebDeleted
  • WedDeleting
  • WebMoved
  • WebMoving

ItemAdded在SPItemEventReceiver中定义,适用于SPListItem对象。

SPWeb的Title属性存储在属性包(http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.properties.aspx)中。

在属性包上调用.Update()时,您似乎无法点击任何事件。标题更新时。

答案 2 :(得分:0)

  1. 我想说重命名Web名称应该触发WebMoved。
  2. 网站标题重命名不会触发任何操作。
  3. 问题:您想要进行哪些更改?因为例如任何元数据都可以存储在里面的列表中,这支持很多事件。

答案 3 :(得分:0)

我不相信这是一个错误,我相信这只是对文档的错误解释。如您所述,文档表明WebMoving和WebMoved事件是由网站的网址被修改或重命名触发的:

来自MSDN Doc:" Synchronous Before在现有网站重命名或移动到其他父对象之前发生的事件。"

然而,在UI中改变的是" name"该网站的标题,但网站的标题。 SPWeb对象确实有一个" Name"可以通过对象模型访问的属性,并且更新该Name属性并调用SPWeb.Update()实际上会触发WebMoved事件。问题是该属性不是通过网站的基于网络的设置页面公开的,只有"标题"字段已公开,此字段更改不会触发事件。虽然这看起来有点反直觉甚至误导,但如果你按字面意思阅读文档,它的行为完全符合记录。