2010-09-13 14 views
10

¿Es posible añadir javascript referencia dinámica a partir de código detrás aspx.cs?referencia JavaScript de código subyacente (C#)

De esta manera:

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

debería resultar en una referencia de script que se añade a la cabecera de la página, así:

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

Es esto posible?

Respuesta

8

Para aquellos que quieran conocer la sintaxis, aquí está:

página maestra:

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

Código atrás:

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

O:

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

Pero ninguna de estas soluciones de hecho, agregue el guión al encabezado de la página.

26

Momento tardío, pero pensé en publicar una respuesta a esto en caso de que alguien más lo necesite. Esta solución niega la necesidad de un ScriptManager.

Básicamente, es solo un caso de crear un control y luego agregar a la cabeza. Aquí está el código.

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

Page.Header.Controls.Add(javascriptRef); 
+0

Aprecio la solución que no es ScriptManager. Permite cargar los enlaces de scripts en el encabezado programáticamente (por ejemplo, lo estoy usando en una página maestra para administrar el peso .js en las páginas del sitio). – secretwep

Cuestiones relacionadas