Creo que la mayoría sabemos que en el desarrollo Web siempre hacemos uso de los scripts y creo que todos hemos tirado mínimo una función de Javascript así que este post trata de como trabajar con estos script en ASP.NET.
1.- Escribiendo Javascript desde el HTML y llamándolo desde el Code-Behind.
Código HTML
<script type="text/javascript" >
function validarTextbox(){
if (document.forms[0].txtNombre.value == "") {
alert('El Cuadro de texto no puede estar vacio');
return false;
}
return false;
}
</script>
Llamándolo desde el Code-Behind
protected void Page_Load(object sender, EventArgs e)
{
btnAceptar.Attributes.Add("onclick", "javascript:return validarTextbox();");
}
2. Escribir y llamar una función Javascript desde el Code-Behind
protected void Page_Load(object sender, EventArgs e)
{
//cadena que contiene el script a ejecutar
string stringJavascript;
stringJavascript = "<script language=\"javascript\"> function poponload(){\n";
stringJavascript += "testwindow = window.open(\"demo.htm\",\"Window\");\n";
stringJavascript += "testwindow.moveTo(0,0);\n";
stringJavascript += "return false;}";
stringJavascript += "</script>";
//registramos el script
ClientScript.RegisterStartupScript(this.GetType(), "strJavascript", stringJavascript);
//lo asignamos al evento del boton
btnAceptar.Attributes.Add("onclick", "return poponload()");
}
3.- Escribir Javascript desde el Code-behind y llamarlo desde HTML
Código en el lado del Servidor
protected void Page_Load(object sender, EventArgs e)
{
string jscript = string.Empty;
jscript = "<script language=\"javascript\">function Mensaje(){alert" +
"(\"Client Function in javascript is call\")}</script>";
ClientScript.RegisterStartupScript(this.GetType(), "sJscript", jscript);
}
Llamándolo desde HTML
<a onclick="Mensaje();">
<asp:Label id="Label1" runat="server" Width="281px" ForeColor="#8080FF">
Clic para llamar a la función del Code-Behind
</asp:Label>
</a>
4. RegisterClientScriptBlock
Esto lo podemos usar si es que no necesitamos que se ejecute una función que creamos, sino solo una parte de un script, aquí el como hacerlo:
Si queremos mostrar una alerta podemos hacer lo siguiente, en el HTML escribimos:
<script language="javascript">
function mensaje() {
alert("funcion llamada desde el Code-Behind");
}
</script>
y si lo queremos ejecutar desde el Code-Behind según lo que escribí arriba sería así:
protected void Button1_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript
(this.GetType(), "jsKey", "javascript:mensaje();", true);
}
Pero si se dan cuenta aquí solo es un código Javascript relativamente corto, entonces aquí es donde podemos usar RegisterClientScriptBlock y para ello lo hacemos así:
protected void Button2_Click(object sender, EventArgs e)
{
ClientScript.RegisterClientScriptBlock
(GetType(), "javascript", "<script>alert(" +
"\"Este es un Bloque de código javascript \")</script>");
}
Actualización: 2 horas más tarde
5. Registrar el script en el evento Load en el Header de nuestra página:
por lo regular cuando agregamos un script solo lo arrastramos desde el explorador de soluciones al Header de nuestra página y nos genera código HTML más o menos así:
<script src="js/mensaje.js" type="text/javascript"></script>
Pero si se han dado cuenta la etiqueta Head en asp.net tiene un atributo runan=”server”, lo que significa que podemos manipularlo desde el Code-Behind lo que nos permite registrar un script desde el lado del servidor, aquí el como hacerlo, primero creamos una función que se llama RegistrarScript:
private void RegistrarScript()
{
HtmlGenericControl script = new HtmlGenericControl("script");
script.Attributes.Add("type", "text/javascript");
script.Attributes.Add("src", "js/mensaje.js");
Header.Controls.Add(script);
}
Aquí nos indica que en nuestro proyecto tenemos un Javascript llamada “mensaje.js” dentro de una carpeta llamada js. Este método lo ponemos dentro del evento load de nuestra página:
protected void Page_Load(object sender, EventArgs e)
{
RegistrarScript();
Button1.Attributes.Add("onclick", "javascript:return mensaje()");
}
Y de esta manera podemos registrar también nuestros script, e incluso las hojas de estilo.
Saludos.
Etiquetas de Technorati:
ASP.NET,
Tips,
Javascript
Comentarios recientes