Procedimiento para personalizar la representación de campos en páginas móviles
En este tema se proporciona una introducción al procedimiento básico para personalizar la representación de campos en las páginas de Windows SharePoint Services 3.0 accesibles para los dispositivos móviles. Para ver los tutoriales detallados del procedimiento, consulte Tutorial: Personalización de títulos de elemento en un formulario de presentación de dispositivo móvil y Tutorial: creación de un control de representación de campos personalizado para páginas móviles.
Según se describe en Sistema de representación de páginas móviles, se llama a un control de selector de plantillas SPMobileListFieldSelector mediante una cadena de llamadas desde un control de la página.
Este objeto determina, en función del tipo de lista y el campo actuales (anuncios y título respectivamente en este ejemplo), qué RenderingTemplate representa el campo en la página de presentación móvil.
El control busca un elemento RenderingTemplate llamado **MobileCustomListField_identificadorDeTipoDeLista_tipoDeCampo_**Campo.
tipoDeCampo es el tipo de datos del campo. Puede ser cualquiera de los valores de la enumeración SPFieldType; por ejemplo, Text o Number. Además, puede ser un tipo de campo personalizado según la definición del elemento <Field Name="TypeName"> en el archivo fldtypes*.xml que define el tipo de campo personalizado. (Para obtener más información acerca de los tipos de campo personalizados, consulte Definición de tipo de campo personalizado).
Campo es el nombre interno del campo, como WorkPhone. Si el campo se especifica como parte de la lista en el archivo Schema.xml para la definición de lista, el nombre interno es el valor del atributo Name del elemento Field en schema.xml, que se encuentra en el siguiente directorio: unidad_local:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\
carpeta_de_características. Si el campo se agregó a la lista en la interfaz de usuario (es decir, en la página Crear columna), Campo es el valor de la propiedad Microsoft.SharePoint.SPField.InternalName y se puede encontrar sólo mediante el modelo de objetos.
Nota
Campo es el nombre interno del campo (columna) y no coincide necesariamente con el nombre para mostrar del campo. En el caso de los campos creados por los usuarios en la interfaz de usuario, el nombre interno lo genera el sistema a partir del nombre para mostrar elegido por el usuario (en el cuadro Nombre de columna de la página Crear columna). Si el usuario incluyó espacios o signos de puntuación en el nombre para mostrar, el sistema de representación de plantillas móviles no funcionará con el nombre interno generado y no podrá personalizar la representación de los campos.
identificadorDeTipoDeLista es el número de identificador del tipo de lista actual (por ejemplo, 105) o uno de los valores de la enumeración SPListTemplateType (por ejemplo, Contacts). Si la lista se especifica como parte del tipo de sitio en el archivo Onet.xml de la definición de sitio, identificadorDeTipoDeLista es el valor del atributo Type del elemento List en Onet.xml
, que se encuentra en el siguiente directorio: unidad_local:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\SITETEMPLATES\
tipo_de_sitio\xml
. (Para obtener una lista de los números de identificador de todos los tipos de lista incluidos con Windows SharePoint Services 3.0, consulte Sistema de representación de páginas móviles). Si la lista se agregó al sitio en la interfaz de usuario (es decir, la página Nueva (lista)), identificadorDeTipoDeLista es el identificador del tipo de lista usado como base para el nuevo tipo de lista. Esto se determina mediante el vínculo en que el usuario hace clic en la página Crear (create.aspx
) para obtener acceso a la página Nueva.
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
al instalar Windows SharePoint Services.
MobileCustomListField_Contacts_Text_WorkPhone
MobileCustomListField_Contacts_Text_HomePhone
MobileCustomListField_Contacts_Text_CellPhone
MobileCustomListField_Contacts_Text_Email
MobileCustomListField_PictureLibrary_Computed_ImageSize
MobileCustomListField_Posts_DateTime_PublishedDate
Puede no modificar el archivo MobileDefaultTemplates.ascx
. Puede crear elementos RenderingTemplate nuevos con los mismos nombres (en su propio archivo .aspx), aunque existe el riesgo de interrumpir otras soluciones instaladas en la implementación de Windows SharePoint Services que dependen de los elementos RenderingTemplate originales con estos nombres.
Nota
Los distintos tipos de RenderingTemplate incluidos con Windows SharePoint Services 3.0 se cargan antes que las plantillas de representación para que, cuando se cargue una plantilla de representación personalizada con el mismo nombre que una plantilla de representación existente, reemplace 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 reemplaza 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:
En Microsoft Visual Studio, el Bloc de notas o una aplicación de edición de texto, cree un archivo de control de usuario (.ascx) en la ruta de acceso
\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES
.Para registrar o importar los espacios de nombres adecuados, agregue las directivas de página necesarias en el archivo .ascx.
Agregue una plantilla de representación al archivo .ascx y asígnele un identificador en el siguiente formato: **MobileCustomListField_identificadorDeTipoDeLista_tipoDeCampo_**Campo.
identificadorDeTipoDeLista 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). Consulte los detalles incluidos anteriormente.
tipoDeCampo es el tipo de datos del campo. Consulte los detalles incluidos anteriormente.
Campo es el nombre del campo. Consulte los detalles incluidos anteriormente.
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.
Guarde el archivo .ascx y restablezca Internet Information Services (IIS) para que los cambios surtan efecto.
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, consulte Tutorial: Personalización de títulos de elemento en un formulario de presentación de dispositivo móvil 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
Otros recursos
Tutorial: Personalización de títulos de elemento en un formulario de presentación de dispositivo móvil
Tutorial: creación de un control de representación de campos personalizado para páginas móviles
Definición de tipo de campo personalizado
Schema.xml
Onet.xml