2011-06-10 4 views
1

특정 이벤트 처리기를 특정 목록에 등록하는 기능을 만들려고합니다. 나는 정상적인 기능처럼 건물을 짓고있다. 그러나, 내 요소 파일을 정의하는 방법을 잘 모르겠습니다. 내 기능에 대한 파일은 다음과 같습니다 :SP 2007의 이벤트 처리기 등록 매니페스트 파일

<?xml version="1.0" encoding="utf-8" ?> 
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> 
<Receivers ListTemplateId="101"> 
    <Receiver> 
     <Name>AddedEventHandler</Name> 
     <Type>ItemAdded</Type> 
     <SequenceNumber>10000</SequenceNumber> 
     <Assembly>ChangeContentTypeEventHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7bfc7c17f98031d7</Assembly> 
     <Class>ChangeContentTypeEventHandler.ChangeContentTypeEventHandler</Class> 
     <Data></Data> 
     <Filter></Filter> 
    </Receiver> 
</Receivers> 
</Elements> 

이에 따라이 이벤트 처리기의 등록을 위해 파일을 어떻게 설정합니까? 또한

, 여기 내은 Feature.xml 파일 :이 기능과 함께 배포됩니다 있도록

또한
<?xml version="1.0" encoding="utf-8" ?> 
<Feature Scope="Web" Title="Change Content Type Event Handler" 
    Id="{27C2FDFF-ADA0-4984-955C-6448E182FA88}" 
    xmlns="http://schemas.microsoft.com/sharepoint/"> 
    <ElementManifests> 
     <ElementManifest Location="ListTemplates\ListManifest.xml"/> 
     <ElementFile Location="Messages\schema.xml"/> 
    </ElementManifests> 
</Feature> 

는,이 기능 자체에 대한 내 솔루션 패키지 WSP 일부가 될 수는?

미리 감사드립니다.

+0

당신이에 대해 혼란스러워 무엇인지에 혼란 스러워요. 너의 물건이 옳았다. 기능이 활성화되면 이벤트 수신자를 등록합니다. Feature.xml 파일에서 참조한대로 Elements 파일의 이름이 "ListManifest.xml"이라고 가정합니다. – CBono

+0

예, 그렇습니다. 어쩌면 문구가 다를 수도 있습니다. 어떤 사람들은 그것을 구속력이라고 부릅니다. 기능이 설치되고 활성화되지만 처리기가 목록에 바인딩되지 않습니다. 따라서 이벤트 핸들러가 실행되지 않습니다. –

답변

1

두 가지 옵션이 있습니다. 요소 파일에서 사용자 정의 목록 템플리트의 ID를 지정할 수 있도록 사용자 정의 목록 템플리트를 작성하거나 코드 (피처 수신자)를 통해 이벤트 수신자를 첨부해야합니다.

이벤트 수신자를 선언적으로 등록 할 때의 문제점은 목록 템플리트 ID (지정된 템플리트를 기반으로하는 모든 목록 적용) 만 지정할 수 있지만 단일 목록 이름이나 ID는 지정할 수 없다는 것입니다.

이 문서에서 이러한 기능 수신기의 예를 찾을 수 있습니다

: http://www.sharepointdev.net/sharepoint--development-programming/whether-there-is-a-way-to-register-a-custom-event-handler-at-a-special-list-63446.shtml