miércoles, 3 de septiembre de 2008

Agregar Javascript desde un masterPage (Ruta Relativa)

Cual les la dificaltad de esto.
basicamente son las rutas. ya que si una pagina ucupa un masterPage, la ruta es de la pagina no del master page, es decir podemos tener n paginas que cuelgan del mismo masterPage sin importar la ruta en la que se encuentrar.

Primero, en nuestra clase de nuestro masterPage debemos incluir un atribito publico.

public string urlStript = string.Empty;


Luego en el page load buscamos la url, real donde se encuentre, cosa de que nos encuentre la ruta relativa del recurso.

urlStript = ResolveClientUrl("~/Resources/scripts/urlStript .js");


Y por ultimo simplemente incluimos en el aspx(master page) el script.
<script language="javascript" type="text/javascript" src="<%# urlStript  %>"></script>
La principal ventaje de esto, es que solo tenemos que el incluir nuestros js solo una vez, o una vez por masterPage que tengamos.


CSS:
para los Css el tratamiento es muy distinto uno solo agrega en el head(siempre y cuando uno le diga el head runat="server") el automaticamente va a buscar el recurso de la siguiente forma:


<head runat="server">
<title>myPage</title>
<link href="~/Resources/styles/estilos.css" rel="stylesheet" type="text/css" />
</head>


esto solo funciona para <link> css no para javascript no se por que.

--
Atte.
Victor Hugo Saavedra

8 comentarios:

  1. hola disculpa parece que el codigo no se copio bien y me interesa como pusiste la ruta erlativa en un master page

    ResponderEliminar
  2. jejejeje, sorry,

    ahi le puse un scroll :D..

    suerte ojala te sirva

    ResponderEliminar
  3. Muy buena la solución pero me funcionó cambiando la almohadilla por el signo '='
    quedaría así
    script language="javascript" type="text/javascript" src="<%= urlStript %>">

    ResponderEliminar
  4. o igual, aunque no se que tan optimo sea

    script language="javascript" type="text/javascript" src="/Nombre_aplicacion/Resources/scripts/urlStript_js"

    saludos ;)

    ResponderEliminar
  5. por que no debería ser optimo, no entiendo?

    ResponderEliminar
  6. excelente Victor, llevaba con este tema ya una semana buscando una solucion y nadie me queria ayudar, Exitos desde Perú un abrazo

    ResponderEliminar
  7. Un apoyo Victor, luego de todos tus pasos, tuve que incovar asi: OnKeyUp="calculo(this.value,ctl00_ContentPlaceHolder1_TextBox2.value,ctl00_ContentPlaceHolder1_TextBox3,ctl00_ContentPlaceHolder1_TextBox7);"

    con los ctl00_ContentPlaceHolder1_TextBox2.value y no con el id original que era TextBox2

    parad datos es un .js que realiza una multiplicacion y coloca el resulta en un Textbox3 cuando ingreso un valor en el TextBox1, GRacias

    ResponderEliminar
  8. hola como puedo hacer para borrar un gridview y unos label en al evento del textchanged de un textbox utilizando java script para qe se ejecute en el cliente y no en el servidor utilizo master page

    ResponderEliminar