문제

SPWebeventReceiver를 사용하여 특정 SPWEB에서 듣고 있습니다. 성공적으로 발사 웹 마우스 이벤트. 웹이 이동하면 새 위치/제목으로 목록을 업데이트합니다.

내가 할 수 있고 싶은 것은 웹이 언제 이름이 바뀌었다 . 아이템 리스너를 첨부하고 ItemUpdated 이벤트를 기다려서이 작업을 수행합니까? 그렇다면 코드의 작은 스 니펫에 감사드립니다! 감사!

도움이 되었습니까?

해결책

이것은 SharePoint OM이있는 버그 인 것 같습니다. 이벤트 수신기는 웹 이름이 변경 될 때 분명히 발사되어야하지만 그렇지 않습니다. 웹의 URL이 변경 될 때만 발사됩니다.

다른 팁

Steve, 내가 볼 수있는 한 Spwebeventreceiver는 SPWEB에 다음 이벤트 만 노출합니다 (http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spwebeventreceivers.aspx)

  • 자리 잡은
  • 자리 잡은 등
  • 웹 사이트
  • 결혼식
  • 웹 마우스
  • 웹 발동

ItemAdded는 splistem 객체에 적용 할 수있는 spitemeventreceiver에 정의됩니다.

SPWEB의 제목 속성은 속성 백에 저장됩니다 (http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.properties.aspx).

.update ()가 속성 백에서 호출 될 때, 예를 들어 제목이 업데이트 될 때 이벤트를 활용할 수있는 것처럼 보이지 않습니다.

  1. 웹 이름의 이름을 바꾸는 것은 웹 마우스를 트리거해야한다고 말합니다.
  2. 사이트 제목 이름 이름 바꾸기는 조치를 취하지 않습니다.

질문 : 어떤 변경을 원하십니까? 예를 들어 모든 메타 데이터가 내부 목록에 저장 될 수 있으므로 많은 이벤트를 지원합니다.

나는 그것이 버그라고 생각하지 않습니다. 나는 그것이 단순히 문서의 잘못 해석이라고 생각합니다. 당신이 언급했듯이, 문서는 사이트의 URL이 수정되거나 이름이 바뀌면서 웹 발동 및 웹 마우스 이벤트가 트리거되었음을 나타냅니다.

~에서 MSDN DOC: "기존 웹 사이트의 이름이 바뀌거나 다른 부모 객체로 변경되기 전에 발생하는 이벤트 전 이벤트 전 동기."

그러나 UI에서 변경되는 것은 사이트의 "이름"이 아니라 사이트 제목입니다. SPWEB 객체에는 객체 모델을 통해 액세스 할 수있는 "이름"속성이 있으며 해당 이름 속성을 업데이트하고 SPWEB.UPDATE () 호출은 실제로 WebMoved 이벤트를 트리거합니다. 문제는이 속성이 사이트의 웹 기반 설정 페이지를 통해 노출되지 않으며 "제목"필드 만 노출 되며이 필드 변경은 이벤트를 트리거하지 않습니다. 이것은 약간 반 직관적이고 오도 된 것처럼 보이지만 문자 그대로 문서를 읽으면 문서화 된대로 정확하게 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top