Introduction
Some times you want to dynamically add a javascript to the header of page or even dynamically add a stylesheet to yuor page.
Background
When we are using Page.ClientScript functions, the scripts won't be added to the header it is going to be added to different part of page.
Using the code
The following code shows how you can dynamically add script or stylesheet or any other type of control to the header of page.
Dim hControl As LiteralControl = New LiteralControl
hControl.Text = "<link href=""default.css"" type=""text/css""
rel=""stylesheet"" />"
Me.Page.Header.Controls.Add(hControl)
Dim header As LiteralControl = New LiteralControl
header.Text = "<script type=""text/javascript""
src=""EWNHeader.js""></script>"
Me.Page.Header.Controls.Add(header)
Here is the new version of my code which i got it from comments (nice job Matteo)
In the following code you can avoid using literal:
To add a meta tag:
HtmlMeta metadescription = new HtmlMeta();
metadescription.Name = "description";
metadescription.Content = "Your page description here";
Page.Header.Controls.Add(metadescription);
To add a stylesheet:
HtmlLink css = new HtmlLink();
css.Href = "mystyle.css";
css.Attributes["rel"] = "stylesheet";
css.Attributes["type"] = "text/css";
css.Attributes["media"] = "all";
Page.Header.Controls.Add(css);
To add an external javascript reference:
HtmlGenericControl js = new HtmlGenericControl("script");
js.Attributes["type"] = "text/javascript";
js.Attributes["src"] = "mylibrary.js";
Page.Header.Controls.Add(js);
Thanks again Matteo;)
Points of Interest
As you can see first we define a LiteralControl
and then we assign our javascript or stylesheet to the text properties of LiteralControl and then we will add the LiteralControl
to header of the page.
Now when you run the page, you will see the javascript or stylesheet has been added to the header. you can call put all this code in afunctiona nd call it on the page_load of asp.net page.