Referencia a JavaScript en una Content Page
Publicado por: Eder Oscar Lázaro Rodriguez (edoswit)Esto se puede implementar cuando hacemos referencian a un archivo JavaScript en una Página Principal (MasterPage) y se tiene que utilizar sólo en un par de páginas de contenido (Content Page), esto trae una sobrecarga adicional en cuestión, ya que el archivo se hace referencia para cada página de contenido. Para evitar esta sobrecarga, puede hacer referencia al archivo JavaScript directamente en las páginas de contenido para la secuencia de comandos que se utilizará. He aquí cómo:
C#
protected void Page_Load(object sender, EventArgs e) { Page.ClientScript.RegisterClientScriptInclude("selective", ResolveUrl(@"Scripts\TestScript.js")); if (!Master.Page.ClientScript.IsStartupScriptRegistered("alert")) { Master.Page.ClientScript.RegisterStartupScript (this.GetType(), "alert", "insideJS();", true); } }
VB.NET
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Page.ClientScript.RegisterClientScriptInclude("selective", _ ResolveUrl("Scripts\TestScript.js")) If (Not Master.Page.ClientScript.IsStartupScriptRegistered("alert")) Then Master.Page.ClientScript.RegisterStartupScript(Me.GetType(), _ "alert", "insideJS();", True) End If End Sub
Como se puede observar, se añade una referencia al archivo .js (TestScript.js) de la página de contenido a través del "RegisterClientScriptInclude" y luego usar el registro de ClientScript.RegisterStartupScript de la escritura con el objeto Page y con eso problema solucionado.
Espero que se a de ayuda, Saludos.








Muy interesante :)
Hace un time me tope con problemas parecidos con el JQuery y las MasterPage
Lo solucione de la sgte manera (aplicable tb para otro js)
<head>
...
</head>
<body>
<form id="form1" runat="server">
<ajax:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="true"
EnableScriptLocalization="true">
<Scripts>
<ajax:ScriptReference Path="jquery-1.3.2.min.js" />
<ajax:ScriptReference Path="jquery-ui-1.7.2.custom.min.js" />
</Scripts>
</ajax:ScriptManager>
...
</form>
</body>
Como se ve es codigo de marcado y no gasto latencia poniendolo en el evento Load de la pagina ... obvio q los js estan en el root del site ;)
Salu2
publicado el 20 de May del 2010, a las 5:32 AM