直到现在我们学习了列表项目事件接收器,现在我们学习一下列表事件接收器吧。本文章中,无论何时在网站创建新列表,我们需要记录监察项到另一个列表。
Getting ready
创建自定义列表EventReceivers,添加Message栏目。
How to do it...
1. 打开VS,新建事件接收器项目ListEventReceiver。
2. 选中部署为沙盒解决方案,点击下一步。
3. 确保选中列表事件类型的事件接收器。选中正在添加列表事件。
4. 点击完成。
5. 添加必要的代码:
6. F5生成并执行解决方案,或者调试--开始调试。
7. 添加新的自定义列表TestList。你应该可以看到EventReceivers列表中新项。
How it works...
它和列表项事件接收器工作方式相同,除了列表事件接收器有基类SPListEventReceiver。你可以比较elements.xml文件。唯一不同的是它没有ListTemplateId属性。因为它应用于网站所有列表,所以也说得通。本例事件接收器在网站级别使用。意味着在部署的站点创建新列表,就会触发事件。
There's more...
如果你注意到base.ItemAdding方法有时首先调用,有时最后调用。规则很简单。如果你将取消事件,最后调用;否则在前面调用。对于同步事件ListAdding或ListItemAdding,我们会做数据验证,然后取消事件,所以在后面调用。