向 SharePoint 2010 列表添加事件接收器
SharePoint 2010 中的 Web 开发入门:了解如何将事件接收器附加到自定义 SharePoint 2010 列表。
上次修改时间: 2011年1月12日
适用范围: Office 2010 | SharePoint Foundation 2010 | SharePoint Server 2010 | Visual Studio | Visual Studio 2010
在本练习中,您将事件接收器添加到自定义 Microsoft SharePoint 2010 列表,当您尝试删除该列表中的项目时,会触发该列表。若要完成此任务,您必须执行以下操作:
打开列表定义项目
添加事件接收器代码
测试解决方案
备注
本练习假定您已在 Microsoft Visual Studio 2010 中创建标题为 Bugs 的自定义列表项目。创建自定义列表定义项目的说明包含在快速说明在 SharePoint 2010 中创建自定义列表定义中。
打开列表定义项目
在该任务中,您将在 Visual Studio 2010 中打开列表定义项目。
打开列表定义项目
启动 Visual Studio 2010
在"文件"菜单上,指向"打开",然后单击"项目/解决方案"。
导航到列表定义项目文件("Bugs.sln"),然后单击"打开"。
添加事件接收器代码
在该任务中,您将创建事件接收器,并将其附加到列表定义。此事件接收器可用于防止删除 Bug 项以及显示消息。
将事件接收器添加到列表定义
在解决方案资源管理器中,右键单击"Bug"节点,指向"添加",然后单击"新建项"。
在"新建项目"对话框窗口中的"已安装的模板"部分,依次单击"Visual C#"、"SharePoint"和"2010"。
从项目项中单击"事件接收器"。
在"名称"框中,键入 BugListItemEvent,然后单击"添加"。
在 SharePoint 自定义向导中,选择"正在删除项"选项,然后单击"完成"。
在解决方案资源管理器中,展开"BugListItemEvent",然后打开"Elements.xml"文件。
若要确保事件接收器仅与自定义列表绑定,请确保"接收器"元素中的 ListTemplateId 属性设置为 10001。
在解决方案资源管理器中,展开"BugListItemEvent",然后打开"BugListItemEvent.cs"。您将看到重写的 ItemDeleting 方法。
将以下代码插入 base.ItemDeleting(properties); 语句后 ItemDeleting 方法的正文中。此代码可用于防止删除项目以及显示错误消息。
try { properties.Cancel = true; properties.ErrorMessage = "Bugs can only be resolved not deleted!"; } catch (Exception ex) { return; } finally { this.EventFiringEnabled = true; }
在解决方案资源管理器中,右键单击"Bug"节点,然后单击"部署"。如果收到部署错误消息,请单击"自动解决"。
打开之前指定的网站。
在主页上的左导航窗格中,单击"Bug"列表。
在"列表工具"选项卡上,单击"项",然后在"新建项"下拉列表中,单击"Bug 项"。将显示"Bug - 新建项"屏幕。
若要创建 Bug,请在适用框中键入信息,然后单击"保存"。
接下来,尝试删除该项。您将收到一条与图 1 所示消息类似的消息。
图 1. 尝试删除项时触发的错误消息
测试解决方案
在该任务中,您将先在自定义列表中创建项,然后通过尝试删除项来触发事件接收器。
测试解决方案
打开在列表定义项目中指定的网站。
在主页上的左导航窗格中,单击"Bug"列表。
在"列表工具"选项卡上,单击"项",然后在"新建项"下拉列表中,单击"Bug 项"。将显示"Bug - 新建项"屏幕。
若要创建 Bug,请在适用框中键入信息,然后单击"保存"。
接下来,尝试删除该项。您将收到一条与图 1 所示消息类似的消息。