RenderPattern 元素(字段类型)

上次修改时间: 2015年3月9日

适用范围: SharePoint Foundation 2010

本文内容
属性
子元素
父元素

重要注释重要信息

本主题介绍现在在列表视图以及"显示"表单、"编辑"表单和"新建"表单中呈现自定义字段类型采用的过时方法中使用的标记。提供本主题完全是为了帮助调试最初使用早期版本的 SharePoint Foundation 开发的自定义字段类型的人员。有关建议的方法的信息,请参阅如何:创建字段呈现模板如何:创建自定义字段类型

其呈现通过 RenderPattern 标记定义的自定义字段仍可正常呈现在表单中。不过,默认情况下,SharePoint Foundation 使用 XSLT 样式表在列表视图中呈现字段,即使是其列表视图呈现通过 RenderPattern 定义的旧自定义字段,也是如此。若要使此类字段呈现,必须将 <Field Name="CAMLRendering">TRUE</Field> 元素添加到字段类型定义文件 (fldtype*.xml) 的限制性 FieldTypes 元素中。

RenderPattern 用于定义 SharePoint Foundation 在 UI 中呈现字段类型使用的实际协作应用程序标记语言 (CAML)、HTML 和脚本。此外,在列表视图中,此元素基于所选的字段类型呈现列标题。

<RenderPattern Name="Text">
</RenderPattern>

属性

属性

说明

Name

必需属性,类型为 String。表示您在此 RenderPattern 元素中定义的呈现模式的名称。

有效值为

  • HeaderPattern。定义 CAML 呈现功能打开(通过将 <Field Name="CAMLRendering">TRUE</Field> 添加到 fldtypes*.xml 文件的限制性 FieldTypes 元素中)时列标题在列表视图页上的呈现。

  • DisplayPattern。定义"显示"(列表项)表单的字段呈现。如果 CAML 呈现功能已打开(通过将 <Field Name="CAMLRendering">TRUE</Field> 添加到 fldtypes*.xml 文件的限制性 FieldTypes 元素中),则 DisplayPattern 还可定义该字段在列表视图页上的呈现。

  • EditPattern。定义字段在"编辑"(列表项)表单上的呈现模式。

  • NewPattern。定义字段在"新建"(列表项)表单上的呈现。

  • PreviewDisplayPattern。定义字段在"显示"模式下使用虚构数据的预览外观,这适用于 WYSIWYG("所见即所得")网站设计器,例如 SharePoint Designer。

  • PreviewEditPattern。定义字段在"编辑"模式下使用虚构数据的预览外观,这适用于 WYSIWYG 网站编辑器,例如 SharePoint Designer。

  • PreviewNewPattern。定义字段在"新建"模式下使用虚构数据的预览外观,这适用于 WYSIWYG 网站编辑器,例如 SharePoint Designer。

子元素

未明确定义,但此元素是视图架构中的 CAML 标记的容器

父元素

FieldType 元素(字段类型)

备注

继承 RenderPatterns

如果没有为字段类型提供具有特定的 Name 值的 RenderPattern,则该字段类型将从其父字段类型继承使用该名称的 RenderPattern。

HeaderPattern

如果已启用 CAML 呈现功能(请参阅上文),则字段类型必须通过直接方式或继承方式具有 RenderPattern 元素的 HeaderPattern 类型,否则列表视图上的字段的列标题不能呈现。当无法对字段类型进行排序或筛选时,HeaderPattern 中的标记可以非常简单。但是,如果可以对字段类型进行排序或筛选,则该标记可以变得非常复杂,因为标头不仅用作列的标题,还用作执行排序和筛选的下拉菜单控件。此外,由于可以对特定列禁用排序和筛选功能(即使列基于的字段类型支持它们),因此标记必须使用 Switch 元素来测试是否为列启用排序或筛选功能。有关示例,请参阅 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\XML\FLDTYPES.XML。

DisplayPattern

如果已启用 CAML 呈现功能(请参阅上文),字段类型必须具有 RenderPattern 元素的 DisplayPattern 类型(如果不是直接的,则可以继承),以便该字段可以呈现在列表视图中。在"显示"模式(例如在"显示"(列表项)页上)下呈现字段时,这一点不是必需的,因为借助呈现控件(.ascx 文件)也可以在"显示"模式下呈现字段。SharePoint Foundation 附带的所有旧字段类型都不使用呈现控件,而使用 RenderPattern 元素的 DisplayPattern 类型在"显示"模式下呈现字段。

RenderPattern 的 DisplayPattern 类型还可用于在列表视图的每一行中呈现字段。默认情况下,SharePoint Foundation 使用位于 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\XSL 的 fldtypes*.xsl 文件中的 XSLT 标记在列表视图中呈现字段。但需要检查 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\XML 中的 fldtypes*.xml 文件,查看该字段的限制性 FieldTypes 元素中是否存在 <Field Name="CAMLRendering">TRUE</Field>。如果存在,则 DisplayPattern 可用于在列表视图中呈现字段。

备注

SharePoint Foundation 附带的两个旧字段类型在 FLDTYPES.XML 中不具有 RenderPattern 的 DisplayPattern 类型:(1) ContentTypeId 字段从不可见。(2) Computed 字段根据显示其的每个列表的 schema.xml 中的 Field 元素中的 DisplayPattern 元素呈现在列表视图上和"显示"模式下。

NewPattern 和 EditPattern

当创建或编辑包含字段的列表项时,如果字段不需要重要的数据处理或数据验证,则 RenderPattern 的 NewPattern 和 EditPattern 类型将分别用于在"新建"模式和"编辑"模式中呈现字段。例如,无法验证自由格式的备注字段,因为任何文本都是一个有效的值。同样,根据定义,选项字段和查阅字段将限制用户只能选择有效值。货币和日期时间等其他字段仅需要可在脚本中编码的最低验证。

有关 RenderPattern 的 NewPattern 和 EditPattern 类型的示例,请参阅 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\XML\FLDTYPES.XML。

派生自多列的自定义字段类型的 RenderPatterns

在自定义的多列字段的 RenderPattern 标记中,Column 元素的 SubcolumnNumber 属性可用于在多列字段类型中指定单个列。有关多列字段类型的详细信息,请参阅自定义多列字段类

示例

下面的示例为继承自多列类型的自定义字段类型定义显示呈现模式。该字段用来存储美国地址。第一个子列存储街道地址,后跟一个 HTML 换行符;下一个子列储存城市名称,后跟一个逗号和一个空格;第三个子列存储州名称,后跟一个空格;最后一个子列存储邮政编码。

<RenderPattern Name="DisplayPattern">
  <Switch>
    <Expr><Column/></Expr>
    <Case Value="">
    </Case>
    <Default>
      <Column SubColumnNumber="0" HTMLEncode="TRUE"/>
      <HTML><![CDATA[<BR>]]></HTML>
      <Column SubColumnNumber="1" HTMLEncode="TRUE"/>
      <HTML><![CDATA[, &nbsp;]]></HTML>
      <Column SubColumnNumber="2" HTMLEncode="TRUE"/>
      <HTML><![CDATA[ &nbsp;]]></HTML>
      <Column SubColumnNumber="3" HTMLEncode="TRUE"/>
      </Default>
  </Switch>
</RenderPattern>

请参阅

任务

演练:创建自定义字段类型

概念

自定义字段类型

如何:创建自定义字段类

自定义字段类型属性呈现

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

自定义多列字段类