[WSS 3.0] Use Visual Studio 2008 to Create an Event Handler Feature
此範例分三個部份:
- 前置動作
- 使用Visual Studio 2008建立Event Handler
- 將Event Handler新增至Windows SharePoint Services Feature裡
1. 前置動作
(1) 需先安裝 Windows SharePoint Services 3.0 Tools Visual Studio 2008 Extensions, Version 1.2 ,
安裝語言需視Visual Studio 2008做更動,此連結為 English
(2) 先手動在頂層網站新增一自訂清單(Custom List),
名稱為{TestList},網址為{http://localhost/Lists/TestList/AllItems.aspx}
此清單為要安裝Event Handler的清單
2. 使用 Visual Studio 2008 建立 Event Handler
(1) 在Visual Studio 2008上選【檔案(F)】→【新增(N)】→【專案(P)… Ctrl+Shift+N】
(2) 專案類型選【SharePoint】,範本選【空專案】→輸入【名稱(N)】為【EventHandlerTest】→【確定】
(3) 在【方案總管】底下的 class 名稱上,【按滑鼠右鍵】→【加入(D)】→【新增項目(W)…】
(4) 分類選【SharePoint】,Visual Studio 安裝的範本選【事件接收器】(Event Receiver),
輸入【名稱(N)】為【CustomListEventReceiver】
(5) 打開【ItemEventReceiver.cs】
(6) 找到【ItemAdded】事件,並將註解取消,輸入程式碼
(7) 在Visual Studio 2008上選【建置(B)】→【建置方案(B)】,或按【Ctrl+Shift+B】
(8) 將專案裡 bin\Debug 資料夾底下的【EventHandlerTest.dll】檔案拖曳至【assembly】
3. 將Event Handler新增至 Windows SharePoint Services Feature 裡
(1) 在【Local_Drive:/Program Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/FEATURES 】
底下建立一名為【EventHandlerTest】的資料夾
(2) 在【EventHandlerTest】資料夾底下建立一名為【Feature.xml】的檔案,內容如下
<Feature Scope="Web"
Title="Event Handler Test"
Id="GUID"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="Elements.xml"/>
</ElementManifests>
</Feature>
(3) 將 GUID 內容改為【ItemEventReceiver.cs】檔案內容裡最上方的 GUID 內容
<Feature Scope="Web"
Title="Event Handler Test"
Id="3e776e49-61d3-45dd-b42c-d994d3e7b503"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="Elements.xml"/>
</ElementManifests>
</Feature>
(4) 同樣在【EventHandlerTest】資料夾底下建立一名為【Elements.xml】的檔案,內容如下
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Receivers ListTemplateId="100">
<Receiver>
<Name>CustomListEventReceiver</Name>
<Type>ItemAdded</Type>
<SequenceNumber>10000</SequenceNumber>
<Assembly>EventHandlerTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9f4da00116c38ec5</Assembly>
<Class>EventHandlerTest.EventReceiverItemEventReceiver</Class>
<Data></Data>
<Filter></Filter>
</Receiver>
</Receivers>
</Elements>
(5) Assembly 的內容為 Local_Drive:\WINDOWS\assembly 底下,在之前已註冊的 dll 名稱上按滑鼠右鍵,選【內容(R)】
(6) ListTemplateId 的部份,可參考 ListTemplate
(7) 開啟 command prompt 後,切換至\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN 目錄底下,輸入以下指令:
stsadm -o installfeature -filename EventHandlerTest\Feature.xml
stsadm -o activatefeature -filename EventHandlerTest\Feature.xml -url http://localhost/Lists/TestList
iisreset
(8) 在 TestList 清單裡新增一個項目,看 C:\ 底下是否有 EventHandlerTest.log 檔案及內容
(9) 如果需要解除安裝,則輸入以下指令:
stsadm -o deactivatefeature -filename EventHandlerTest\Feature.xml -url http://localhost/Lists/TestList
stsadm -o uninstallfeature -filename EventHandlerTest\Feature.xml
iisreset
Reference From : How to: Create an Event Handler Feature