在 SharePoint 2010 中创建自定义列表定义

SharePoint 快速入门横幅
SharePoint 2010 中的 Web 开发入门:了解如何在 SharePoint 2010 中创建自定义列表定义,然后将事件接收器附加到其中。

上次修改时间: 2011年1月12日

适用范围: SharePoint Foundation 2010 | SharePoint Server 2010 | Visual Studio | Visual Studio 2010

在本练习中,您将在 Microsoft SharePoint 2010 中创建自定义列表定义,然后创建使用该列表时触发的事件接收器。若要完成此任务,您必须执行以下操作:

  • 创建 SharePoint 列表定义项目

  • 自定义 SharePoint 列表定义

  • 测试解决方案

创建 SharePoint 列表定义项目

在该任务中,您将在 Microsoft Visual Studio 2010 中创建列表定义 SharePoint 2010 项目。

创建 SharePoint 项目

  1. 若要启动 Visual Studio 2010,请依次单击"开始"菜单、"所有程序"、"Microsoft Visual Studio 2010"和"Microsoft Visual Studio 2010"。

  2. 在"文件"菜单上,指向"新建",然后单击"项目"。

  3. 在"新建项目"对话框窗口中的"已安装的模板"部分,依次单击"Visual C#"、"SharePoint"和"2010"。

  4. 从项目项中单击"列表定义"。

  5. 在"名称"框中,键入 Bugs,然后单击"确定"。

  6. 在 SharePoint 自定义向导中,键入要用于本练习的本地网站(例如 https://localhost/SampleWebSite)。

  7. 对于信任级别,请选择"部署为场解决方案",然后单击"下一步"。

  8. 在"列表定义的显示名称是什么?"框中,键入 Bugs。

  9. 在"列表定义的类型是什么?"下拉列表中,选择"自定义列表"。

  10. 选中"为此列表定义添加列表实例"复选框,然后单击"完成"。

自定义 SharePoint 列表定义

该任务将指导您完成自定义列表定义项目模板,具体方法是更改列表名称、其中存储的内容类型以及在新建窗体、编辑窗体和显示窗体时显示的字段。

自定义列表定义

  1. 在解决方案资源管理器中,展开"ListInstance1",然后打开"Elements.xml"文件。

  2. 在 ListInstance 元素中,将 Title 属性更改为 Bugs,并将 TemplateType 属性更改为 10001。

  3. 在解决方案资源管理器中,在打开"Schema.xml"之前,打开"Elements.xml"。

  4. 在 ListTemplate 元素中,将 Type 属性更改为 10001,并添加 DisallowContentTypes="FALSE" 属性。

  5. 将以下 XML 插入 Elements.xml 文件中的 Elements 元素顶部,如图 1 所示。此 XML 说明了此列表存储的 Bug Item 内容类型。

    <!-- Describes content types. -->
    <ContentType
      ID="0x010089E3E6DB8C9B4B3FBB980447E313CE94"
      Name="Bug Item"
      Group="Custom Content Types"
      Description="Bug item content type."
      Version="0">
      <FieldRefs>
        <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" />
        <FieldRef ID="{cb55bba1-81a9-47b6-8e6c-6a7da1d25602}" />
        <FieldRef ID="{0248c82f-9136-4b3a-b802-d0b77280b3bc}" />
        <FieldRef ID="{aa4a82dd-5b32-4507-9874-4e1c7bca3279}" />
      </FieldRefs>
    </ContentType>
    <!--  End describes content types. --> 
    
  6. 将以下 XML 插入 Elements.xml 文件中的 Elements 元素顶部,如图 1 所示。此 XML 说明了 Bug Item 内容类型使用的字段。

    <!-- Describes fields in bug list. -->
    <Field Type="Note" DisplayName="Description" Required="FALSE" NumLines="6" RichText="FALSE" Sortable="FALSE" ID="{cb55bba1-81a9-47b6-8e6c-6a7da1d25602}" StaticName="BugDescription" Name="BugDescription" Group="Custom Columns" />
    <Field Type="Text" DisplayName="Project" Required="FALSE" MaxLength="255" ID="{0248c82f-9136-4b3a-b802-d0b77280b3bc}" StaticName="BugProject" Name="BugProject" Group="Custom Columns" />
    <Field Type="Text" DisplayName="Assigned To" Required="FALSE" MaxLength="255" ID="{aa4a82dd-5b32-4507-9874-4e1c7bca3279}" StaticName="BugAssignedTo" Name="BugAssignedTo" Group="Custom Columns" />
    <!-- End describes fields in bug list. -->
    

    图 1. 插入两部分代码后的 Elements.xml 文件

    插入代码后的 Elements.xml 文件

  7. 在解决方案资源管理器中,打开"Schema.xml"。

  8. 将 EnableContentTypes="TRUE" 属性添加到 Schema.xml 文件内的 List 元素中。

  9. 将以下 XML 插入 schema.xml 文件中的 ContentTypes 元素中,如图 2 所示。此 XML 说明了此列表存储的 Bug Item 内容类型。

    <!-- Start Add. -->
    <ContentTypeRef ID="0x010089E3E6DB8C9B4B3FBB980447E313CE94" />
    <!-- End Add. -->
    
  10. 将以下 XML 插入 Fields 元素中,如图 2 所示。此 XML 说明了此列表存储的字段。这些字段与您在上一步添加的内容类型中的字段直接相关。

    <!-- Start Add. -->
    <Field Type="Note" DisplayName="Description" Required="FALSE" NumLines="6" RichText="FALSE" Sortable="FALSE" ID="{cb55bba1-81a9-47b6-8e6c-6a7da1d25602}" StaticName="BugDescription" Name="BugDescription" Group="Custom Columns" />
    <Field Type="Text" DisplayName="Project" Required="FALSE" MaxLength="255" ID="{0248c82f-9136-4b3a-b802-d0b77280b3bc}" StaticName="BugProject" Name="BugProject" Group="Custom Columns" />
    <Field Type="Text" DisplayName="Assigned To" Required="FALSE" MaxLength="255" ID="{aa4a82dd-5b32-4507-9874-4e1c7bca3279}" StaticName="BugAssignedTo" Name="BugAssignedTo" -Group="Custom Columns" />
    <!-- End Add. -->
    

    图 2. 插入 ContentTypeRefs 代码和 Fields 代码后的 Schema.xml

    插入 ContentTypeRefs 后的 Schema.xml

  11. 将以下 XML 插入第二个视图中的 ViewFields 元素中,其中 BaseViewID="1" 如图 3 所示。此 XML 说明了此特殊视图中的哪些字段可见。BaseView 1 已设置为默认视图。此视图是新建字段将在其中显示的视图。

    <!-- Start Add. -->
    <FieldRef Name="BugDescription"></FieldRef>
    <FieldRef Name="BugProject"></FieldRef>
    <FieldRef Name="BugAssignedTo"></FieldRef>
    <!-- End Add. -->
    

    图 3. 字段 XML 插入后的 Schema.xml

    插入字段 XML 后的 Schema.xml

  12. 在解决方案资源管理器中,右键单击"Bug"节点,然后单击"部署"。

测试解决方案

在该任务中,您将通过将 Bug 添加到"Bug"列表来测试解决方案。

将项目添加到"Bug"列表

  1. 打开之前指定的网站。

  2. 在主页上的左导航窗格中,单击"Bug"列表。

  3. 在"列表工具"选项卡上,单击"项",然后在"新建项"下拉列表上,单击"Bug 项",如图 4 所示。

    图 4."新建项"下拉列表中的"Bug 项"

    新项目列表中的错误项

    将显示"Bug - 新建项"屏幕,如图 5 所示。

    图 5. 新建 Bug 项对话框

    "新建错误项"对话框

  4. 在"Bug - 新建项"屏幕中,在"标题"框中键入 Bug01。

  5. 在"说明"框中键入谁将跟踪此 Bug?,在"项目"框中键入编写开发人员文章,然后单击"保存"。

后续步骤