Compartir a través de


Controles de representación de campos

Se puede usar una clase de control de representación, en combinación con una plantilla de representación, para representar los campos personalizados en el modo nuevo o el modo de edición. (Estas clases también se pueden usar para representar un campo en el modo de presentación, pero es más habitual usar un RenderPattern definido en una definición de campo para representar los campos en el modo de representación.)

Las clases de control de representación se deben heredar de BaseFieldControl o una de las clases de Windows SharePoint Services que se derivan de ella. Esta clase se compila en el mismo ensamblado que la clase de campo personalizado.

Se recomienda usar la siguiente convención de nomenclatura al crear clases de campo personalizado que se derivan, directa o indirectamente, de la clase BaseFieldControl:

nombreDeTipoDeCampo FieldControl

Por ejemplo, TargetDateFieldControl o RegularExpressionFieldControl. (Las clases que se derivan de BaseFieldControl que se incluyen con Windows SharePoint Services 3.0 se crearon antes de que se determinara esta convención de nomenclatura y siguen el patrón nombreDeTipoDeClaseField, como DateTimeField.)

Un objeto que crea instancias de un control de representación contiene, en la propiedad Field, una referencia al objeto de campo que representa. El segundo contiene una referencia a su control de representación en la propiedad FieldRenderingControl. Como sugieren estas referencias recíprocas, los dos objetos están asociados. El objeto derivado de SPField controla la interacción con la base de datos de contenido, mientras que el control de representación derivado de BaseFieldControl controla la interacción con los usuarios y la representación del campo en la interfaz de usuario.

La plantilla de representación

Cada control de representación tiene asociada al menos una plantilla de representación. Un objeto RenderingTemplate se define como un elemento RenderingTemplate de un archivo .ascx de la carpeta C:\program files\common files\microsoft shared\web server extensions\12\template\controltemplates. El valor ID hace referencia a su plantilla de representación en la propiedad TemplateName del objeto del control de representación.

Nota

BaseFieldControl hereda miembros de TemplateBasedControl que permiten vincularlo a varias plantillas de representación y cambiar entre ellas según el contexto de representación.

Para obtener más información acerca de las plantillas de representación, consulte Plantillas de representación de campos.

El método CreateChildControls

Una clase de control de representación reemplaza el método CreateChildControls que hereda de Control. Puesto que la plantilla de representación hace la mayor parte del trabajo de representación, el método CreateChildControls tiene mucho menos trabajo del que tendría en una clase de control ASP.NET clásica. Normalmente, sólo da un toque final a los controles secundarios. Por ejemplo, puede asignar un valor predeterminado a un control secundario en el modo nuevo o asignar el valor actual del campo a un control secundario en el modo de edición. No es probable que los reemplazos de CreateChildControls contengan un gran número de operadores new que creen controles secundarios (que pueden sorprender si tiene conocimientos de programación en ASP.NET).

En ocasiones, la lógica de validación de datos se incluye en CreateChildControls. Para obtener más información acerca de la validación de datos de campos personalizados, consulte Validación de datos de campos personalizados.

Vea también

Otros recursos

Tipos de campos personalizados
Clases de campos personalizados
Validación de datos de campos personalizados
Definición de tipo de campo personalizado
Plantillas de representación de campos
Patrones de representación de campos personalizados
Tutorial: Crear un tipo de campo personalizado