2009-02-11 32 views

Respuesta

8

Debe usar los recursos de elementos web que pueden vincularse o incorporarse. En este artículo se hace un buen trabajo de explicar cómo usarlos:

Best Practices for Managing Web Part Resources

+0

Ese artículo es bueno, excepto la parte en la que está codificando el camino ("~/wpresources/espacio de nombres", etc) dependiendo GAC/papelera de instalar. eso es lo que es para WebPart.ClassResourcePath - http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webpartpages.webpart.classresourcepath.aspx – Ryan

+0

Buen punto como nosotros utilizar esta propiedad en nuestro propio código. – webwires

+2

¡el enlace está muerto! – Abhijit

0

Inserción de la CSS en la parte web está bien si nunca va a cambiar la CSS para la parte web.

Yo recomendaría incluir el CSS en un archivo separado almacenado en la biblioteca de estilos o cambiar un archivo css vinculado en el diseño de página o la página maestra (como core.css).

apenas define clases únicas para su parte web si es necesario y dejar la definición de la forma en que se da a cada página web. Esto permite que diferentes áreas de su implementación de SharePoint muestren la misma parte web de diferentes maneras.

El significa que nunca tendrá que liberar una DLL con el fin de cambiar un aspecto de menor importancia y se sienten tema.

+0

Acepto que el enlace en lugar de incrustado es el camino a seguir para las actualizaciones, pero creo que es una mala idea que el CSS se asocie con la página, en ese caso, ¿cómo puede estar seguro de cuándo se agrega un elemento web a una página? que el CSS está allí también? También lo está agregando a cada página, independientemente de la necesidad. – Ryan

+0

Cambie la respuesta para que sea un poco más clara – Nat

18

Este es mi enfoque

protected override void CreateChildControls() 
{ 
    CssRegistration.Register("/_layouts/STYLES/WebPartName/styles.css"); 
} 

Esto asegura que el CSS se ha registrado e incluyó sólo una vez y da la oportunidad de modificar el CSS sin redepolying toda la DLL.

+0

Agradable. Gracias :) – l3dx

1

U también se puede utilizar:

HtmlLink linkCss = new HtmlLink(); 

//Defining attributes and values of the link tag 
linkCss.Attributes.Add("href", "StyleSheet1.css"); 
linkCss.Attributes.Add("type", "text/css"); 
linkCss.Attributes.Add("rel", "Stylesheet"); 

//Add HtmlLink instance to the header of the current page 
Page.Header.Controls.Add(linkCss); 
Cuestiones relacionadas