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

