Compartir a través de


Procedimiento para personalizar la representación de campos en páginas móviles

Última modificación: miércoles, 02 de febrero de 2011

Hace referencia a: SharePoint Foundation 2010

En este tema se proporciona información general sobre el procedimiento básico para personalizar la representación de campos en las páginas de Microsoft SharePoint Foundation a las que pueden acceder los dispositivos móviles. Para ver los tutoriales detallados del procedimiento, vea Tutorial: Personalización de títulos de elementos en formularios móviles y Tutorial: creación de un control de representación de campos personalizado para páginas móviles.

La representación de un campo en un formulario o página de vista de lista siempre empieza con un objeto SPMobilePageContents en el área de cuerpo (contenido) de la página. Tal como se describe en Sistema de representación de páginas móviles, este objeto inicia una cadena de llamadas que en última instancia resulta en una llamada a un objeto RenderingTemplate que representa el área correspondiente de la página móvil. Se trata casi siempre de una plantilla RenderingTemplate con un identificador segmentado. Si no se encuentra una plantilla RenderingTemplate con un nombre que coincida, se usará una plantilla predeterminada. Esto significa que se puede personalizar la representación de un campo mediante la creación de una plantilla RenderingTemplate con el identificador que el tiempo de ejecución buscará.

Concretamente, el tiempo de ejecución busca una plantilla RenderingTemplate con un identificador con el siguiente formato: MobileCustomListField_IDTipoDeLista_tipoDeCampo_campo.

Los marcadores de posición IDTipoDeLista, tipoDeCampo y campo se definen en Identificadores segmentados de plantilla de representación.

Si no existe RenderingTemplate con el identificador buscado, se usa RenderingTemplate con el identificador MobileDefaultListField.

Plantillas de representación existentes

En la siguiente lista, se identifican los distintos tipos de RenderingTemplate para la representación de campos que ya existen en MobileDefaultTemplates.ascx o GwbMobileDefaultTemplates.ascx cuando se instala SharePoint Foundation.

  • MobileCustomListField_Contacts_Text_WorkZip

  • MobileCustomListField_PictureLibrary_Computed_ImageSize

  • MobileCustomListField_Posts_DateTime_PublishedDate

  • MobileCustomListField_Events_UserMulti_ParticipantsPicker

  • MobileCustomListField_CallTrack_DateTime_CallTime

  • MobileCustomListField_CallTrack_Computed_RefDetail

  • MobileCustomListField_Whereabouts_User_Name

Puede no modificar los archivos MobileDefaultTemplates.ascx o GwbMobileDefaultTemplates.ascx. Puede crear elementos RenderingTemplate nuevos con los mismos nombres (en su propio archivo .ascx), aunque existe el riesgo de interrumpir otras soluciones instaladas en la implementación de SharePoint Foundation que dependen de los elementos RenderingTemplate originales con estos nombres.

Nota

Los distintos tipos de RenderingTemplate incluidos con SharePoint Foundation se cargan antes que las plantillas de representación personalizadas. Por tanto, cuando se carga una plantilla de representación personalizada con el mismo nombre que una plantilla de representación existente, invalida a la plantilla original. Si más de un elemento RenderingTemplate personalizado tiene el mismo nombre, el que tenga el nombre de archivo en la última posición alfabéticamente invalida al resto. Si un archivo específico tiene dos o más plantillas con el mismo nombre, no se carga ninguna.

Además, ya hay un elemento RenderingTemplate predeterminado con el identificador MobileDefaultListField. Se usa en tiempo de ejecución siempre que no se haya definido RenderingTemplate para la lista y el campo actuales. Existe el mismo riesgo si crea RenderingTemplate a partir de cero con este nombre.

Para personalizar una sección de una vista de lista móvil o una página de formulario

  1. En Microsoft Visual Studio, cree un Proyecto de SharePoint vacío. Conviértalo en una solución de granja de servidores, no en una solución de espacio aislado.

  2. Agregue una Carpeta asignada de SharePoint a TEMPLATE\ControlTemplates.

  3. Haga clic con el botón secundario en la nueva carpeta y agregue un control de usuario de SharePoint. Asigne al archivo .ascx un nombre que lo distinga de los de otros proveedores de soluciones; por ejemplo, ContosoMobileRenderingTemplates.ascx. Visual Studio agrega automáticamente el archivo al manifiesto de la solución de SharePoint y lo establece para que se implemente en %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates.

    SugerenciaSugerencia

    Para agregar el control de usuario, no haga clic con el botón secundario en el proyecto en el Explorador de soluciones. Cuando se agrega un control de usuario de ese modo, Visual Studio lo coloca en una subcarpeta de TEMPLATE\ControlTemplates y, si no se mueve, Visual Studio lo implementa en una subcarpeta correspondiente de %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates. Las plantillas de representación móvil en las subcarpetas no se cargan.

  4. Elimine los archivos .ascx.cs y .ascx.designer.cs (o .ascx.vb y .ascx.designer.vb). No son necesarios para este proyecto.

  5. Reemplace toda la sección de directivas del archivo .ascx con el siguiente marcado.

    <%@ Register TagPrefix="GroupBoardMobile"   Namespace="Microsoft.SharePoint.Applications.GroupBoard.MobileControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Control Language="C#"   %> 
    <%@ Assembly Name="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %> 
    <%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="SPMobile" Namespace="Microsoft.SharePoint.MobileControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="WPMobile" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    
  6. Agregue una plantilla de representación al archivo .ascx y asígnele un identificador en el siguiente formato: MobileCustomListField_IDTipoDeLista_tipoDeCampo_campo.

    • IDTipoDeLista es el número de identificador de un tipo de la lista actual (por ejemplo, 105) o uno de los valores de la enumeración SPListTemplateType (por ejemplo, Contacts).

    • tipoDeCampo es el tipo de datos del campo y campo es el nombre del nombre interno del campo. Para obtener más información sobre lo que pueden reemplazar estos marcadores de posición, vea Sistema de representación de páginas móviles.

    La plantilla de representación puede declarar directamente controles representables, como los controles Label, o puede declarar un control de representación de una clase derivada de SPMobileBaseFieldControl.

  7. Seleccione Implementar solución en el menú Compilación. Esta acción guardará automáticamente el archivo ascx, lo implementará en %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates y reciclará la aplicación web, de modo que todos los archivos .ascx en dicha carpeta se volverán a cargar.

Ejemplo

En el siguiente ejemplo de una definición de RenderingTemplate se muestra cómo crear un campo de título nuevo para los elementos de las listas de anuncios. Para obtener ejemplos detallados, vea Tutorial: Personalización de títulos de elementos en formularios móviles y Tutorial: creación de un control de representación de campos personalizado para páginas móviles.

<SharePoint:RenderingTemplate RunAt="Server" ID="MobileCustomListField_Announcements_Text_Title" >
  <Template>
    <mobile:Label Text="Title field in Announcements List" RunAt="Server" />
  </Template>
</SharePoint:RenderingTemplate>

Vea también

Tareas

Tutorial: Personalización de títulos de elementos en formularios móviles

Tutorial: creación de un control de representación de campos personalizado para páginas móviles

Conceptos

Procedimiento para crear una definición de tipo de campo personalizado

Descripción de los archivos Schema.xml

Descripción de los archivos Onet.xml