Procedimiento para crear un control de representación de campos
Última modificación: lunes, 05 de abril de 2010
Hace referencia a: SharePoint Foundation 2010
Se puede usar una clase de control de representación, en combinación con una o varias plantillas de representación, para representar los campos personalizados en el modo nuevo, de edición o de presentación.
Las clases de control de representación se deben heredar de BaseFieldControl o una de las clases de Microsoft SharePoint Foundation 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:
nombreDeTipoDeCampoFieldControl
Algunos ejemplos de clases de control de campo denominadas correctamente son TargetDateFieldControl y RegularExpressionFieldControl. (Las clases que derivan de BaseFieldControl que se incluyen con SharePoint Foundation se crearon antes de que se determinara esta convención de nomenclatura y siguen el patrón nombreDeTipoDeCampoField, 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 en un archivo .ascx de la carpeta %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\controltemplates. El valor ID hace referencia a su plantilla de representación en la propiedad TemplateName o en la propiedad DisplayTemplateName 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 Procedimiento para crear plantillas de representación de campos.
El método CreateChildControls
Una clase de control de representación invalida el método CreateChildControls que hereda de Control. Puesto que la plantilla de representación realiza 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, solo 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 los modos de edición y de presentación. No es probable que las invalidaciones de CreateChildControls contengan un gran número de operadores new que creen controles secundarios (lo que puede sorprenderlo 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
Tareas
Tutorial: Crear un tipo de campo personalizado
Conceptos
Tipos de campos personalizados
Procedimiento para crear una clase de campos personalizados
Validación de datos de campos personalizados
Procedimiento para crear una definición de tipo de campo personalizado
Procedimiento para crear plantillas de representación de campos