jueves, 11 de febrero de 2010

Como evitar el PostBack de un boton asp.net con javascript

En ocasiones queremos parar el PostBack de nuestro boton, normalmente por temas de validación aunque podemos usarlo a nuestro gusto.

Entonces nos ponemos en la situación de que tenemos un control asp button que va al servidor cuando se hace click en el, y lo que queremos es que se ejecute en determinadas situaciones, por ejemplo si a pasado la validación.

teniendo este control asp:button
asp:button id="btBuscarVuelos" runat="server" text="Buscar" onclick="btBuscarVuelos_Click" onclientclick="return ValidarVuelos();">

vemos que cuando pulsemos el botón, se ejecutara "btBuscarVuelos_Click", porque se ejecuta el evento del click, pero como podemos ver tambien tiene un "onclientclick" que llama a una funcion javascript.

la función javascript puede ser algo así.

function ValidarVuelos() {

var V = ValidateFly();
envio(V);
if (V == 1)
return false;
if (V == 0)
return true;
}
Esta función llama a otra función javascript que valida los campos y devuelve 0 o 1 dependiendo de si esta correcto o no los campos del formulario.
Lo importante de esto es lo que devuelve esta función, si es correcto devuelve un "true" y si no devuelve un "false", con lo que si nos fijamos en el control de asp.net.

onclientclick="return ValidarVuelos();"

se ejecutara el PostBack en el servidor si esa función retorna un true, y si no se quedara en el cliente y no se ejecutara el Postback.

Espero que sirva.

Un saludo

9 comentarios:

  1. muchas gracias amigo, me fue de mucha utilidad tu post, muy bueno!!

    ResponderEliminar
  2. woooooooooowwww si fynciona, despues de dias de buscar una soliucion, jejejeje gracias

    ResponderEliminar
  3. De nada hombre, para eso se hacen estas cosas ;)

    ResponderEliminar
  4. Hola, como puedo hacer que se evite el postback pero que me abra un webform modal?

    ResponderEliminar
  5. Hola, como puedo hacer que se evite el postback pero que me abra un webform modal?

    ResponderEliminar
  6. Dentro de la función javascript, puedes lanzar todo lo que quieras desde cliente.

    por ejemplo , tener una funcion js, public abrirModal() {
    window.open("");
    }

    donde pone windw.open, haz la llamada a tu acción que abra el modal

    ResponderEliminar
  7. Muchas gracias, funcionó perfectamente!!

    ResponderEliminar