Захват события изменения названия на SPWeb - PullRequest
2 голосов
/ 10 апреля 2009

Я прослушиваю конкретный SPWeb с использованием SPWebEventReceiver, который успешно запускает событие WebMoved . Когда сеть перемещается, я обновляю список с новым местоположением / названием.

Что я хотел бы сделать, так это прослушивать, когда сеть переименована . Должен ли я сделать это, подключив прослушиватель элемента и ожидая события ItemUpdated? Если так, я был бы признателен за небольшой фрагмент кода! Спасибо!

Ответы [ 4 ]

2 голосов
/ 13 апреля 2009

Похоже, что это ошибка в SharePoint OM. Очевидно, что получатель события должен срабатывать при изменении имени сети, но это не так. Он срабатывает только при изменении URL сети.

0 голосов
/ 30 октября 2014

Я не верю, что это ошибка, я считаю, что это просто неверное толкование документации. Как вы указали, в документации указано, что события WebMoving и WebMoved инициируются изменением или переименованием URL-адреса сайта:

из MSDN Doc : «Синхронное событие до», которое происходит до того, как существующий веб-сайт был переименован или перемещен в другой родительский объект. "

Однако в пользовательском интерфейсе меняется не «имя» сайта, а его название. У объекта SPWeb есть свойство «Имя», которое доступно через объектную модель, и обновление этого свойства «Имя» и вызов SPWeb.Update () фактически вызывают событие WebMoved. Проблема в том, что это свойство не отображается на веб-странице настроек сайта, отображается только поле «Заголовок», и это изменение поля не вызывает событие. Хотя это кажется немного нелогичным и даже вводящим в заблуждение, если вы читаете документацию буквально, она ведет себя именно так, как описано в документации.

0 голосов
/ 16 апреля 2009
  1. Я бы сказал, что переименование веб-имени должно вызвать WebMoved.
  2. Переименование сайта не вызывает никаких действий.

Вопрос: Какие изменения вы хотите включить? Потому что любые метаданные, например, могут храниться в списках внутри, что поддерживает множество событий.

0 голосов
/ 13 апреля 2009

Стив, Насколько я вижу, SPWebEventReceiver предоставляет только следующие события на SPWeb (http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spwebeventreceiver_members.aspx)

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

ItemAdded определяется в SPItemEventReceiver, который применим к объектам SPListItem.

Свойство Title SPWeb хранится в пакете свойств (http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.properties.aspx).

Не похоже, что вы можете подключиться к каким-либо событиям, когда .Update () вызывается из пакета свойств, например когда заголовок обновляется.

...