在WSS3.0内创建并使用Event Handler(续)
上篇中的方法,只能针对一个具体的列表增加其事件响应,如果针对多个表如何进行呢?一个解决的方法就是针对某个或某些表的模板,只要是该模板生成的列表都可以。
首先介绍一下各种模板的标示ID号:
•100 Generic list
•101 Document library
•102 Survey
•103 Links list
•104 Announcements list
•105 Contacts list
•106 Events list
•107 Tasks list
•108 Discussion board
•109 Picture library
•110 Data sources
•111 Site template gallery
•112 User Information list
•113 Web Part gallery
•114 List template gallery
•115 XML Form library
•116 Master pages gallery
•117 No-Code Workflows
•118 Custom Workflow Process
•119 Wiki Page library
•120 Custom grid for a list
•130 Data Connection library
•140 Workflow History
•150 Gantt Tasks list
•200 Meeting Series list
•201 Meeting Agenda list
•202 Meeting Attendees list
•204 Meeting Decisions list
•207 Meeting Objectives list
•210 Meeting text box
•211 Meeting Things To Bring list
•212 Meeting Workspace Pages list
•301 Blog Posts list
•302 Blog Comments list
•303 Blog Categories list
•1100 Issue tracking
•1200 Administrator tasks list
接下来,说明如何针对这些模板来注册事件处理的Dll,及将其作为一个WSS的Feature。
1. 在Local_Drive
:/Program Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/FEATURES
下创建一个目录LitwareHandlers。2. 在该目录下生成两个文件:Feature.xml和Elements.xml。两个文件内容如下:
Feature.xml
Event Registrations
3. 在Local_Drive
:/Program Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/FEATURES目录下执行:
stsadm -o installfeature -filename LitwareHandlers\Feature.xml
stsadm -o activatefeature -filename LitwareHandlers\Feature.xml -url http://localhost:40000/Customize
iisreset
注意:部署的网站请改为自己需要的。4. 回到Orders列表,插入新的记录或更新已有的记录,看看是否OrderID会随着改变。
另外,如果想删除上篇中已注册的EventHandler,可以在HandlerRegistrationApp工程中的Program.cs文件中,注释掉原有的注册的语句,增加上删除的方法,具体程序参照以下: