[ASP.NET] Generando scripts del lado del servidor

Posted on Actualizado enn


Algunas nos es necesario poder generar código JavaScript desde el lado del servidor, y ASP.NET nos provee esta característica de una forma bastante sencilla, para ello usamos el método RegisterClientScriptBlock de la propiedad ClientScript de la clase Page, la sintaxis entonces sería algo así:

Page.ClientScript.RegisterClientScriptBlock(tipo,nombreScript,codigoScript,insertaScriptTags)

Entonces los parámetros de este método, según la documentación de MSDN es:

  1. tipo [Type]: Tipo del script de cliente que se va a registrar
  2. nombreScript [String]: Clave del script de cliente que se va a registrar
  3. codigoScript [String]: Literal del script de cliente que se va a registrar
  4. insertaScriptTags [Boolean]: Valor booleano que indica si se agregan etiquetas de script.

Ahora vamos a hacer un pequeño ejemplo que ilustra como hacerlo, creamos una página aspx, le agregamos dos botones, y programamos el evento click de cada uno, para el primer botón entonces tenemos:

Protected Sub btnScript1_Click(sender As Object, e As EventArgs) Handles btnScript1.Click
	Dim sScript  As  New StringBuilder()
	With sScript
		sScript.Append( "alert('Este es un script dinámico');")
	End  With
	   
	Page.ClientScript.RegisterClientScriptBlock( Me. GetType(),  "ScriptDinamico1", sScript.ToString(),  True)
End Sub

Con el anterior código la idea es simplemente mostrar un alert en la página, lo primero que hacemos es declara una variable de tipo StringBuilder, luego de la línea 4 – 6 lo que hago es a mi variable darle como valor el texto del alert, si es verdad una sola línea de código, entonces para que usar el StringBuilder? bueno lo he colocado para que cuando se cree un script mucho más largo (como es generalmente lo que yo hago) entonces no usemos una variable de tipo string, finalmente utilizamos el método RegisterClientScriptBlock, lo interesante acá es que como valor en el último parámetro le establecemos el valor de True, es decir le decimos que nos genere las etiquetas de apertura y cierre de scripts solo, es decir las etiquetas <script type=”text/javascript”> y </script>.

Ahora el código del segundo botón será prácticamente igual, solo que en este caso le vamos a decir que no genera las etiquetas de scripts automáticamente, en dicho caso tenemos que especificárselas:

Protected  Sub btnScript2_Click(sender  As  Object, e  As EventArgs)  Handles btnScript2.Click
    Dim sScript  As  New StringBuilder()
      
    With sScript
        sScript.Append("<script type='text/javascript'>")
        sScript.Append("alert('Este es un script dinámico');")
        sScript.Append(</script>")
    End  With
       
    Page.ClientScript.RegisterClientScriptBlock( Me. GetType(),  class="str">"ScriptDinamico2", sScript.ToString(),  False)
End Sub

Bueno es un tema sencillo, pero espero el post les sea de utilidad.

2 comentarios sobre “[ASP.NET] Generando scripts del lado del servidor

    Resumen Post 2012 « Todo en ASP.NET escribió:
    12/19/2012 en 22:04

    […] [ASP.NET] Generando scripts del lado del servidor […]

    Resumen Post 2012 « MVPs de LATAM escribió:
    01/04/2013 en 12:57

    […] [ASP.NET] Generando scripts del lado del servidor […]

Deja un comentario