Adicionando JS ou CSS no head via código

<< Click to Display Table of Contents >>

Navigation:  ASP.NET > Dicas avançadas >

Adicionando JS ou CSS no head via código

Previous pageReturn to chapter overviewNext page

Tive problemas usando a mesma masterpage para páginas que estavam no raiz e em sub-pastas.

Elas apontavam para um CSS ou JS que ficava em outra pasta... como o código html da masterpage não aceita a tag "~/" para indicar o raiz do projeto.

Dava problemas e o navegador não encontrava os arquivos css ou js quando site era movido para o IIS.

Este código abaixo resolve o problema pois coloca o CSS e JS via programação usando o ~/

 

        protected void AddCSS(string nome)

        {

            HtmlLink cssLink = new HtmlLink();

            cssLink.Href = "~/css/" + nome;

 

            cssLink.Attributes.Add("rel", "stylesheet");

            cssLink.Attributes.Add("type", "text/css");

 

            this.Page.Header.Controls.Add(cssLink);

            this.Page.Header.Controls.Add(new LiteralControl("\r\n"));

        }

 

        protected void AddJS(string nome)

        {

            HtmlGenericControl Include = new HtmlGenericControl("script");

 

            Include.Attributes.Add("type", "text/javascript");

            Include.Attributes.Add("src", HttpRuntime.AppDomainAppVirtualPath + "js/" + nome);

 

            this.Page.Header.Controls.Add(Include);

            this.Page.Header.Controls.Add(new LiteralControl("\r\n"));

        }

 

        protected void StartLavaLamp()

        {

            //JavaScript!

            HtmlGenericControl JsLavaLamp = new HtmlGenericControl("script");

 

            JsLavaLamp.Attributes.Add("type", "text/javascript");

            JsLavaLamp.InnerHtml = "\r\n" +

                    "$(function () {                            \r\n" +

 

                    "    $('#menu_principal').lavaLamp({        \r\n" +

                    "        fx: 'backout',                     \r\n" +

 

                    "        speed: 700,                        \r\n" +

                    "        click: function (event, menuItem) {\r\n" +

 

                    "            return true;                   \r\n" +

                    "        }                                  \r\n" +

 

                    "    });                                    \r\n" +

                    "});                                        \r\n";

 

            this.Page.Header.Controls.Add(JsLavaLamp);

            this.Page.Header.Controls.Add(new LiteralControl("\r\n"));

        }

 

        protected void Page_Load(object sender, EventArgs e)

        {         

            if (!IsPostBack)

            {

                AddCSS("layout.css");

                AddCSS("fontes.css");

                AddCSS("botoes.css");

                AddCSS("lavalamp.css");

 

                AddJS("jquery-1.2.3.min.js");

                AddJS("jquery.easing.min.js");

                AddJS("jquery.lavalamp.min.js");

 

                StartLavaLamp();

            }

        }