02/2010
04

Referencia a JavaScript en una Content Page

Publicado por: Eder Oscar Lázaro Rodriguez (edoswit) 
Calificación 5.00 por 1 personas
Votar ahora!

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.


 

(1) Comentarios

Dejame tu Comentario
  • ClaCS ClaCS Dijo:
    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

Escribe tu Comentario:





arriba