如何:创建自定义字段类型定义
上次修改时间: 2015年3月9日
适用范围: SharePoint Foundation 2010
字段类型定义是一个 XML 文件,它采用部署到 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\XML 的 fldtypes*.xml 模式命名。SharePoint Foundation 附带的字段类型位于 FLDTYPES.XML 文件中。字段定义文件包含 SharePoint Foundation 在列表视图、"显示"表单、"编辑"表单和"新建"表单上正确呈现字段所需的信息。字段类型的名称和说明显示在"自定义"[列表] 页面、"新建网站栏"和"创建栏"页面等 UI 页面上,也可以在字段类型定义中对其进行配置。最重要的是,定义中包含有关含有已编译字段类型的程序集的信息。
为了识别自定义字段类型,SharePoint Foundation 必须在 fldtypes*.xml 文件中设置字段类型定义。可在 Visual Studio 中作为自定义字段类型项目的一部分创建这些文件。例如,如果您有一个针对定义身份证号的字段类型的字段类型定义,则可以将 XML 文件命名为 fldtypes_ssn_Contoso.xml。
备注
建议遵循系统化的命名模式并包括公司名称,以便可以轻松地将 ... \XML 目录中的字段定义与其他解决方案提供程序的字段定义区分开来。同一文件中可以具有多个字段定义(如下面的示例所示),当您拥有多个字段定义并且知道它们将始终部署在一起时,这可能是一个明智的策略。但为了使说明简单易懂,SharePoint Foundation SDK 通常假定在每个自定义 fldtypes*.xml 中只有一个自定义字段类型。SharePoint Foundation 附带的 FLDTYPES.XML 具有很多字段类型定义。不 支持修改该文件。
以下是字段类型定义中包含的元素的列表。单击元素名称可获取有关该元素的详细信息。
fldtypes*.xml 文件的顶级容器元素。 |
|
字段类型定义的顶级容器元素。 |
|
一个表示字段类型的单个特性的元素。 |
|
一个定义变量字段类型属性 的元素。已过时。 |
|
PropertySchema 元素中的顶级容器元素。已过时。 |
|
一个元素,表示在创建基于自定义字段类型的列时为该字段类型设置的一个变量属性。已过时。 |
|
一个元素,表示自定义字段类型的属性的默认值。已过时。 |
|
一个定义在特些情况下如何呈现字段的元素。已过时。 |
字段类型定义示例
下面的示例定义了两种自定义字段类型。
<?xml version="1.0" encoding="utf-8" ?>
<FieldTypes>
<FieldType>
<Field Name="TypeName">SocialSecurityNumber</Field>
<Field Name="ParentType">Text</Field>
<Field Name="TypeDisplayName">Social Security Number</Field>
<Field Name="TypeShortDescription">Social Security Number (123456789, 123-45-6789)
</Field>
<Field Name="AllowBaseTypeRendering">TRUE</Field>
<Field Name="FieldTypeClass">
AdventureWorks.FieldTypes.SSNField, AdventureWorks.FieldTypes,
Version=1.0.0.0,Culture=neutral,PublicKeyToken=90734cc53324b79c
</Field>
</FieldType>
<FieldType>
<Field Name="TypeName">USAddress</Field>
<Field Name="ParentType">MultiColumn</Field>
<Field Name="TypeDisplayName">US Address</Field>
<Field Name="TypeShortDescription">US Address(12345 NE 123 St. Redmond, WA 98052)
</Field>
<Field Name="UserCreatable">TRUE</Field>
<Field Name="FieldTypeClass">
AdventureWorks.FieldTypes.USAddressField, AdventureWorks.FieldTypes,
Version=1.0.0.0,Culture=neutral,PublicKeyToken=90734cc53324b79c
</Field>
</FieldType>
</FieldTypes>
对象模型中的字段类型定义
部署字段类型解决方案后,您可以将 SharePoint Foundation 对象模型中的字段类型定义作为 SPFieldTypeDefinition 对象进行访问。您在字段类型定义 XML 中定义的大多数设置都表示为 SPFieldTypeDefinition 类的只读成员。此类的大多数属性都具有与 fldtypes*.xml 文件中的相应设置相同的名称。有关例外情况的详细信息,请参阅 Field 元素(字段类型)。
RenderPattern 和 PropertySchema 已过时。无法通过 SPFieldTypeDefinition 来访问 RenderPattern 元素。在 PropertySchema 属性中,可以将 PropertySchema 元素作为 XML 字符串进行读取。