ideas locas para adjuntar un css a un webpart como característica

Se ha creado un webpart personalizado que se añadirá al sitio por medio de una característica. Para que pueda ser reutilizado, los estilos css deben ser totalmente independientes al código del webpart (no vale colocarlos todos dentro del atributo style) Así que se debe enlazar una hoja de estilos al webpart.

Si el webpart se ha creado desde cero, no hay problema, se añade el código correspondiente desde .Net y luego se complia. Lo que hace el código es añadir una etiqueta CSSRegistration (<SharePoint:CssRegistration name=”<% $SPUrl:~SiteCollection/Style Library/~language/Core Styles/Band.css%>” runat=”server”/> ) dentro de

<Sharepoint:CssLink runat="server" />

para que pinte una nueva etiqueta <link> con  el nuevo css.

El problema viene cuando el webpart que se quiere reutilizar y activar con una característica ya viene prehecho. En este caso se ha utilizado un Content Query Webpart. ¿Cómo asociamos un CSS únicamente a este webpart?.  Dos ideas locas, utilizando el archivo xsl que pinta la cabecera del webpart. se llama: Header.xsl en el insertar:

– etiqueta <link> directamente en el código (no sé si se puede colocar esta etiqueta dentro del body o debe ir únicamente en la cabecera) la etiqueta puede ir donde se quiera, la interpreta igual

insertar el siguiente código:

<style type='text/css' media='screen,projection'>
@import '/styles/layout.css';/*ruta del css*/
</style> 

no entiende la etiqueta @import 

insertar un content SharePoint:CssRegistration para que se incluya en el placeholder de la cabecera. no sé si al ser un archivo xsl interpretará la etiqueta y la colocará donde toca. Además tampoco sé si una vez pintada la cabecera se rellenará el csslink con cssregistration de después. Como es un archivo xsl, no entiende las etiquetas asp.

Sólo hay tres soluciones: dar formato con xsl, poner los estilos directamente en el xsl con la etiqueta <style> o linkar un css con la etiqueta <link> en el achivo xsl que pinta entero el webpart: si queremos añadir algo por encima de todos los ítems (estén agrupados o no) y por debajo (incluído el FooterTemplate), tenemos que añadir código a la función: OuterTemplate en el MyContentQueryMain.xsl

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: