我正在使用 SPWebEventReceiver 监听特定的 SPWeb 成功地网络移动 事件。当网络移动时,我会使用新的位置/标题更新列表。

我希望能够做的是监听网络何时出现 重命名 。我是否可以通过附加项目侦听器并等待 ItemUpdated 事件来执行此操作?如果是这样,我将不胜感激一小段代码!谢谢!

有帮助吗?

解决方案

它看起来像这样是与SharePoint OM的错误。 事件接收显然应该解雇当网络的名称改变,但是当网页的URL发生变化,也不会。它只火灾。

其他提示

史蒂夫 据我所知,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() 时,您似乎无法访问任何事件,例如当标题更新时。

  1. 我想说,Web 名称的重命名应该会触发 WebMoved。
  2. 站点标题重命名不会触发任何操作。

问题:您希望进行哪些更改?因为任何元数据都可以存储在内部列表中,这支持很多事件。

我不认为这是一个错误,我认为这仅仅是文档的曲解。正如你所说,该文件表明WebMoving和WebMoved事件是由该网站的网址触发被修改或重命名:

MSDN督:“同步之前现有网站已被重命名或移动到不同的父对象发生的事件之前。”

然而,什么样的用户界面得到改变NOT是该网站的“名字”,但该网站的标题。该SPWeb对象确实有一个“名称”属性,通过对象模型进行访问,并更新Name属性和调用SPWeb.Update()实际上触发WebMoved事件一样。麻烦的是,这个属性不通过该站点的基于web的设置页面曝光,只是“标题”字段被曝光,这一领域的变化不会触发事件。虽然这似乎有点违反直觉的,甚至误导性的,如果你从字面上阅读文档,它是表现完全一样记录。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top