Martin at Mennt
Martin at Mennt

Reputation: 5737

Add JavaScript reference from code behind (C#)

Is it possible to add javascript reference dynamically from code behind aspx.cs?

Like this:

private void AddScriptReference(string path)
{
   //Add reference to <head></head>
}

Should result in a script reference being added to the head of the page, like this:

<html>
   <head>
      <script type="text/javascript" src="path-to-script.js"></script>
   </head>
</html>

Is this possible?

Upvotes: 10

Views: 32069

Answers (3)

MarkDD
MarkDD

Reputation: 271

Bit late but thought I'd post an answer to this in case anybody else needs it. This solution negates the need for a ScriptManager.

Basically, it's just a case of creating a control and then adding to the head. Here's the code.

LiteralControl javascriptRef = new LiteralControl("<script type='text/javascript' src='path_to_script.js'></script>");

Page.Header.Controls.Add(javascriptRef);

Upvotes: 27

Martin at Mennt
Martin at Mennt

Reputation: 5737

For those who want to know the syntax, here it is:

Master Page:

<asp:ScriptManager ID="ScriptManager" EnablePageMethods="true" runat="server"></asp:ScriptManager>

Code behind:

ScriptReference sr = new ScriptReference("path-to-js.js");
ScriptManager sm = (ScriptManager)this.Master.FindControl("ScriptManager");
sm.Scripts.Add(sr);

Or:

ScriptManager.RegisterClientScriptInclude(this.Page, GetType(), "UniqueID", "path-to-js.js");

But none of these solutions actually add the script to the head of the page..

Upvotes: 8

Jan Jongboom
Jan Jongboom

Reputation: 27323

You can use the ASP.NET Ajax ScriptManager to do so.

Add it to your masterpage, and use ScriptManager.RegisterClientScriptInclude from your codebehind.

Upvotes: 7

Related Questions