2009-04-10 69 views
2

我正在使用SPWebEventReceiver(即)成功偵聽特定SPWeb上的發生在WebMoved事件中。當網絡被移動時,我用新的位置/標題更新一個列表。在SPWeb上捕獲標題更改事件

我希望能夠做的是聽網絡是什麼時候改名爲。我是否通過附加項目偵聽器並等待ItemUpdated事件來完成此操作?如果是這樣,我會感激一小段代碼!謝謝!

回答

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()時,不會顯示您可以點擊任何事件。標題更新時。

0
  1. 我會說Web名稱的重命名應該觸發WebMoved。
  2. 網站標題重命名觸發不採取任何行動。

問題:你想要點擊什麼變化?因爲實例的任何元數據都可以存儲在列表中,這支持很多事件。

0

我不認爲這是一個錯誤,我認爲這只是對文檔的誤解。如您所述,文檔表明WebMoving和WebMoved事件是由網站的URL被修改或重命名觸發的:

from MSDN Doc:「Synchronous事件發生在現有Web站點被重命名或移動到一個不同的父對象「。

但是,界面上發生了什麼變化並不是網站的「名稱」,而是網站的標題。 SPWeb對象具有可通過對象模型訪問的「Name」屬性,並更新該Name屬性並調用SPWeb.Update()實際上會觸發WebMoved事件。問題在於此屬性未通過網站的基於Web的設置頁面公開,只顯示「標題」字段,並且此字段更改不會觸發事件。雖然這看起來有點反直覺,甚至誤導,但如果您從字面上閱讀文檔,則其行爲與文檔完全相同。