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 元素中定义的呈现模式的名称。 有效值为
|
子元素
未明确定义,但此元素是视图架构中的 CAML 标记的容器 |
父元素
备注
继承 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[, ]]></HTML>
<Column SubColumnNumber="2" HTMLEncode="TRUE"/>
<HTML><![CDATA[ ]]></HTML>
<Column SubColumnNumber="3" HTMLEncode="TRUE"/>
</Default>
</Switch>
</RenderPattern>