我正在使用SPWebEventReceiver(即)成功偵聽特定SPWeb上的發生在WebMoved事件中。當網絡被移動時,我用新的位置/標題更新一個列表。在SPWeb上捕獲標題更改事件
我希望能夠做的是聽網絡是什麼時候改名爲。我是否通過附加項目偵聽器並等待ItemUpdated事件來完成此操作?如果是這樣,我會感激一小段代碼!謝謝!
我正在使用SPWebEventReceiver(即)成功偵聽特定SPWeb上的發生在WebMoved事件中。當網絡被移動時,我用新的位置/標題更新一個列表。在SPWeb上捕獲標題更改事件
我希望能夠做的是聽網絡是什麼時候改名爲。我是否通過附加項目偵聽器並等待ItemUpdated事件來完成此操作?如果是這樣,我會感激一小段代碼!謝謝!
看起來這是SharePoint OM的一個錯誤。 The event receiver is clearly supposed to fire when the name of a web is changed, but it does not.只有當網址改變時纔會觸發。
史蒂夫, 據我所看到的,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()時,不會顯示您可以點擊任何事件。標題更新時。
問題:你想要點擊什麼變化?因爲實例的任何元數據都可以存儲在列表中,這支持很多事件。
我不認爲這是一個錯誤,我認爲這只是對文檔的誤解。如您所述,文檔表明WebMoving和WebMoved事件是由網站的URL被修改或重命名觸發的:
from MSDN Doc:「Synchronous事件發生在現有Web站點被重命名或移動到一個不同的父對象「。
但是,界面上發生了什麼變化並不是網站的「名稱」,而是網站的標題。 SPWeb對象具有可通過對象模型訪問的「Name」屬性,並更新該Name屬性並調用SPWeb.Update()實際上會觸發WebMoved事件。問題在於此屬性未通過網站的基於Web的設置頁面公開,只顯示「標題」字段,並且此字段更改不會觸發事件。雖然這看起來有點反直覺,甚至誤導,但如果您從字面上閱讀文檔,則其行爲與文檔完全相同。