Вопрос

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

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

Это было полезно?

Решение

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

Другие советы

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

  • Сайт удален
  • Удаление сайта
  • Вебудален
  • СрУдаление
  • WebMoved
  • Вебпереезд

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top