Захват события изменения заголовка в SPWeb
-
09-09-2019 - |
Вопрос
Я слушаю конкретный 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() вызывается в пакете свойств, например.когда заголовок обновляется.
- Я бы сказал, что переименование веб-имени должно вызвать WebMoved.
- Переименование названия сайта не вызывает никаких действий.
Вопрос:Какие изменения вы хотите реализовать?Потому что любые метаданные, например, могут храниться внутри списков, что поддерживает множество событий.
Я не считаю, что это ошибка, я считаю, что это просто неправильная интерпретация документации.Как вы заявили, в документации указано, что события WebMoving и WebMoved запускаются при изменении или переименовании URL-адреса сайта:
от Документ MSDN:«Событие Synchronous Before, которое происходит до того, как существующий веб-сайт был переименован или перемещен в другой родительский объект».
Однако в пользовательском интерфейсе меняется НЕ «имя» сайта, а его заголовок.У объекта SPWeb есть свойство «Name», доступное через объектную модель, и обновление этого свойства Name и вызов SPWeb.Update() фактически запускают событие WebMoved.Проблема в том, что это свойство не отображается на веб-странице настроек сайта, отображается только поле «Заголовок», и это изменение поля не вызывает событие.Хотя это кажется немного нелогичным и даже вводящим в заблуждение, если вы читаете документацию буквально, она ведет себя точно так, как описано в документации.