Buscar este blog

viernes, 22 de noviembre de 2013

Añadir css embebidos en tus controles web(.net)

Hola, hoy les explicare como embeber un archivo css en tu control web que estés desarrollando, lo primero que hay que hacer es lo siguiente:

1. Modifica el archivo AssemblyInfo.cs y agrega esto:

[assembly: System.Web.UI.WebResource("CustomControls.Styles.GridStyles.css", "text/css"), PerformSubstitution = true)]

Donde CustomControls es tu proyecto y style tu carpeta donde tienes el css, prácticamente es ponerlo como se formaría un namespace.

2. Al archivo .css aplicale la propiedad de BuildAction a  Embedded Resource, para que se embeba en nuestra dll.

3. Ahora si, el código que necesitamos es el siguiente:


protected override void OnPreRender(EventArgs e) 
   {
        bool linkIncluded = false;
        foreach (Control c in Page.Header.Controls)
        {
            if (c.ID == "GridStyle")
            {
                linkIncluded = true;
            }
        }
        if (!linkIncluded)
        {
            HtmlGenericControl csslink = new HtmlGenericControl("link");
            csslink.ID = "GridStyle";
            csslink.Attributes.Add("href", Page.ClientScript.GetWebResourceUrl(this.GetType(), "CustomControls.Styles.GridStyles.css"));
            csslink.Attributes.Add("type", "text/css");
            csslink.Attributes.Add("rel", "stylesheet");
            Page.Header.Controls.Add(csslink);
        }
    }

4. Si quieres hacer una referencia a una imagen pues embeber la imagen y referenciarla de esta manera en tu css:

background: url('<%=WebResource("CustomControls.Styles.Cross.png")%>') no-repeat 95% 50%;

Como ven esto es muy facil de implementar y espero que les sea de utilidad.

No hay comentarios:

Publicar un comentario