演练:创建自定义字段、内容类型、列表定义和列表实例

下面的过程演示如何在 SharePoint 中创建一个名为“Patient Name”(患者姓名)的自定义字段以及使用该字段的内容类型。 它还演示如何将列表定义以及使用新内容类型和字段的基于列表定义的列表实例添加到项目中。

本演练将演示以下任务:

  • 创建并自定义一个字段。

  • 创建并自定义一个使用该字段的内容类型。

  • 创建并自定义一个列表定义。

  • 创建并自定义该列表定义的一个列表实例。

  • 查看内容类型和列表实例中的新字段。

提示

对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置

系统必备

您需要以下组件来完成本演练:

创建自定义字段项

首先,在 Visual Studio 中创建一个名为**“Patient Name”(患者姓名)**的自定义字段项作为 SharePoint 项目。

创建自定义字段项

  1. 通过指向**“文件”菜单上的“新建”并单击“新建项目”,显示“新建项目”**对话框。

  2. 展开**“Visual C#”“Visual Basic”下的“SharePoint”节点,然后单击“2010”**。

  3. 单击**“模板”窗格中的“空 SharePoint 项目”,将项目的名称更改为“CustomField1”,然后单击“确定”**。

    这将显示**“SharePoint 自定义向导”**。 将对自定义字段项使用空项目模板,因为这些项没有可用的模板。

  4. 在**“指定用于调试的网站和安全级别”**页上,输入要将新自定义字段项添加到的 SharePoint Server 网站的 URL,或者使用默认位置 (http://<system name>/)。

  5. 在**“此 SharePoint 解决方案的信任级别是什么?”部分,使用默认值“部署为沙盒解决方案”**。

    有关沙盒解决方案与场解决方案的更多信息,请参见沙盒解决方案注意事项

  6. 单击**“完成”。 您应该会看到该项目出现在“解决方案资源管理器”**中。

  7. 向项目中添加“空元素”项目项。 为此,在“解决方案资源管理器”中单击字段的项目节点(“CustomField1”),然后单击**“项目”菜单上的“添加新项目”**。

  8. 展开**“Visual C#”“Visual Basic”下的“SharePoint”节点,然后单击“2010”**。

  9. 在**“模板”窗格中,选择“空元素”,保留默认名称 EmptyElement1,然后单击“添加”**。

  10. 在**“EmptyElement1”**下的 Elements.xml 文件中,将以下内容添加到 <Elements> 标记后面:

    <Field ID="{5744d18c-305e-4632-8bd1-09d134f4830d}" 
        Type="Note" 
        Name="PatientName" 
        DisplayName="Patient Name" 
        Group="A Custom Group">
    </Field>
    

    这将添加一个名为**“Patient Name”(患者姓名)**的字段。

    重要说明重要事项

    在添加自定义字段时,必须指定该字段的 ID、Type、Name、DisplayName 和 Group 特性,以使该字段在 SharePoint 中正常显示。 语句错误完成会指示只需这五个特性中的前三个特性,而实际上所有五个特性都是必需的。

  11. 按 F5 以运行项目,并将其部署到 SharePoint。

    如果您收到了一条表示已禁用脚本调试的消息,请单击**“是”**以继续调试。

  12. 如果这是您第一次在 Visual Studio 中调试 Web 应用程序,则系统将询问您是否修改 Web 配置文件以允许调试。 回答**“是”**。

  13. 在 SharePoint 网页顶部,单击**“网站操作”按钮,然后单击“网站设置”**。

  14. 在**“网站设置”页的“库”部分下,单击“网站栏”**链接。

  15. 在**“网站栏库”页中,向下滚动页面到“自定义栏”标题,您会注意到新增了字段项“Patient Name”(患者姓名)**。

  16. 关闭浏览器。

创建自定义内容类型

接下来,将基于 SharePoint 联系人列表创建使用在前面过程中创建的新字段的内容类型。

创建自定义内容类型

  1. 向项目中添加内容类型。 为此,请单击**“解决方案资源管理器”中的项目节点,然后单击“项目”菜单上的“添加新项目”**。

  2. 展开**“Visual C#”“Visual Basic”下的“SharePoint”节点,然后单击“2010”**。

  3. 在**“模板”窗格中,选择“内容类型”**并使用默认名称 ContentType1。

  4. 在**“SharePoint 自定义向导”中,选择“联系人”作为新项目所基于的内容类型,然后单击“完成”**。

    这将打开该内容类型的 Elements.xml 文件以供编辑。

  5. 在 Elements.xml 的 <FieldRefs> 部分中,复制并粘贴:

    <FieldRef ID="{5744d18c-305e-4632-8bd1-09d134f4830d}" 
        Name="PatientName" 
        DisplayName="Patient Name" 
        Required="TRUE"/>
    

    此处使用的 FieldRef ID 将引用我们为自定义字段创建的字段 ID。

  6. 按 F5 以运行和部署项目。

  7. 在 SharePoint 网页顶部,单击**“网站操作”按钮,然后单击“网站设置”**。

  8. 在**“网站设置”页的“库”部分下,单击“网站内容类型”**链接。

  9. 在**“网站内容类型库”页中,您会发现我们刚创建的新内容类型“CustomField1 - ContentType1”。 单击该内容类型以查看其字段。 在“CustomField1 - ContentType1”的字段列表中,请注意添加了“Patient Name”(患者姓名)**字段。

  10. 关闭浏览器。

创建列表定义和列表实例

现在,创建将使用新内容类型和字段的列表定义和列表实例。 由于我们希望基于刚创建的内容类型来创建列表定义,因此将使用“基于内容类型的列表定义”项目项模板。

创建列表定义和列表实例

  1. 向项目中添加列表定义。 为此,请单击**“解决方案资源管理器”中的项目节点,然后单击“项目”菜单上的“添加新项目”**。

  2. 展开**“Visual C#”“Visual Basic”下的“SharePoint”节点,然后单击“2010”**。

  3. 在**“模板”窗格中,选择“基于内容类型的列表定义”**并使用默认名称 ListDefinition1。

  4. 在**“列表定义的显示名称是什么?”框中,保留默认值“CustomField1 - ListDefinition1”**。

  5. 在**“要为列表定义使用哪个内容类型?”列表中,使用唯一默认值“CustomField1 - ContentType1”**。

    这将基于新的和修改的联系人列表创建一个可自定义的列表定义。

  6. 选择**“为此列表定义添加列表实例”**框,以便将某个列表实例项目项添加到项目中。 该列表实例将是新列表定义的实例。

  7. 单击**“完成”。 您应该会看到该列表定义出现在“解决方案资源管理器”**中。

自定义列表定义

最后,将自定义列表定义,方法是向其中添加新字段**“Patient Name”(患者姓名)**。

重要说明重要事项

列表定义的 Elements.xml 中的 Name 特性值必须与列表定义项目项的文件夹名称相匹配,否则在运行项目时将发生错误。 为了确保 Name 特性与文件夹名称相匹配,将使用替换参数(或标记)$ProjectItemName$。 对 SharePoint 项目进行打包和部署时,此标记将转换为列表定义的实际文件夹名称。 如果将 Name 特性的值更改为此标记以外的值,则应用程序可能无法正确运行。 有关更多信息,请参见可替换参数

向列表定义中添加字段

  1. 在解决方案资源管理器中,双击**“ListDefinition1”**下的 Schema.xml 以对其进行查看。

    Schema.xml 会定义所有字段以及列表定义的其他元素,例如,名称和地址。 请注意,在文件顶部的 <Fields> 元素的下方,内容类型已添加以下字段定义:

    <FieldRef ID="{5744d18c-305e-4632-8bd1-09d134f4830d}" 
        Name="PatientName" 
        DisplayName="Patient Name" 
        Required="TRUE" />
    
  2. 按 F5 以运行和部署项目。

  3. 在 SharePoint 快速启动栏中的**“列表”部分下,单击“CustomField1 - ListInstance1”**链接。

    这是新列表定义的列表实例。 请注意,新字段**“Patient Name”(患者姓名)**尚未显示为列表实例中的一列。

  4. 在页面顶部的**“列表工具”菜单选项卡中单击“列表”,然后单击功能区栏上的“修改视图”**按钮。

  5. 在可用的列名称列表中,选择**“Patient Name”(患者姓名),然后单击“确定”。 请注意,“Patient Name”(患者名称)**字段此时显示在列表实例中。

请参见

其他资源

开发 SharePoint 解决方案

如何:创建自定义字段类型

内容类型