El problema es que la funcion javascript no espera a recibir respuesta del PageMethods. A ver si me explico con codigo:
Código:
La funcion validarBD se ejecuta, pero para cuando devuelve un valor el args.IsValid ya devolvio null, pues no espero la respuesta del PageMethods y devolvio el valor de la variable "valido" inmediatamente despues de llamar a la funcion validarBD.var valido = null; function validar(source, args){ valido = null; PageMethods.validarBD(document.getElementById('txtNombre').value, OnValidar, OnError); args.IsValid = valido; } function OnValidar(result){ valido = result; } function OnError(result){ alert(result) }
Pude resolver este problema agregando un while entre la linea PageMethods ... y la linea args.IsValid..., este while
Código:
Entonces antes de devolver un valor, verifica que "valido" no sea NULL, si no es NULL quiere decir que la funcion validarBD ya devolvio un valor y args.IsValid ya puede devolver un valor. while(valido==null){ }
La ejecucion de la pagina se clava cuando le pongo esto, se queda muda, no se puede hacer nada mas que detener la depuracion.
Lo curioso es que si pongo
Código:
Funciona de maravillas, con la salvedad que te aparece un molesto cartel del alert.while(valido==null){ alert("hola"); }
¿¿¿Alguien puede orientarme para ver si esto se puede hacer Sincrono, y no Asincronicamente como esta ahora???
Desde ya, mil gracias