如何:创建字段呈现控件

上次修改时间: 2010年4月5日

适用范围: SharePoint Foundation 2010

可以将呈现控件类与一个或多个呈现模板一起使用以便在"新建"、"编辑"或"显示"模式中呈现您的自定义字段。

呈现控件类必须从 BaseFieldControl 或从它派生的 Microsoft SharePoint Foundation 中的类之一继承。此类会编译为与自定义字段类相同的程序集。

我们建议您在创建直接或间接派生自 BaseFieldControl 类的自定义字段类时使用下列命名约定:

字段类型名称FieldControl

正确命名的字段控件类的示例包括 TargetDateFieldControlRegularExpressionFieldControl。(在确定此命名约定之前,已创建 SharePoint Foundation 附带的 BaseFieldControl 派生的类,并且它们遵循以下模式:字段类型名称Field,例如 DateTimeField。)

实例化呈现控件的对象在其 Field 属性中保留了对其呈现的字段对象的引用。后者在其 FieldRenderingControl 属性中保留了对其呈现控件的引用。这些相互引用表明,这两个对象是合作伙伴。SPField 派生的对象处理与内容数据库的交互,而 BaseFieldControl 派生的呈现控件处理与用户的交互以及用户界面中字段的呈现。

呈现模板

每个呈现控件至少包含一个与其关联的呈现模板。RenderingTemplate 对象定义为文件夹 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\controltemplates 内 .ascx 文件中的 RenderingTemplate 元素。可在呈现控件对象的 TemplateName 属性或 DisplayTemplateName 属性中通过呈现模板的 ID 值来引用呈现模板。

备注

BaseFieldControl 继承自 TemplateBasedControl 成员,从而使其能够链接到多个呈现模板,并基于呈现上下文在这些模板之间切换。

有关呈现模板的详细信息,请参阅如何:创建字段呈现模板

CreateChildControls 方法

呈现控件类会重写它从 Control 中继承的 CreateChildControls 方法。由于呈现模板会完成大部分呈现工作,因此 CreateChildControls 方法的工作量比它在经典 ASP.NET 控件类中的工作量要少得多。通常,它只提供对子控件的最终完善。例如,它可能会在"新建"模式中为子控件分配一个默认值,或在"显示"和"编辑"模式中为子控件分配字段的当前值。重写的 CreateChildControls 不会包含大量用于创建子控件的 new 运算符(如果您具有 ASP.NET 编程背景,则可能会感到意外)。

CreateChildControls 中有时会包含数据验证逻辑。有关自定义字段数据验证的详细信息,请参阅自定义字段数据验证

请参阅

任务

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

概念

自定义字段类型

如何:创建自定义字段类

自定义字段数据验证

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

如何:创建字段呈现模板

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