Hola, tengo un CustomValidator el cual llama a una funcion Javascript la cual a su vez se comunica con una funcion VB.NET a travez de PageMethods.
El problema es que la funcion javascript no espera a recibir respuesta del PageMethods. A ver si me explico con codigo:
Código:
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)
}
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.
Pude resolver este problema agregando un while entre la linea PageMethods ... y la linea args.IsValid..., este while
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.
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:
while(valido==null){
alert("hola");
}
Funciona de maravillas, con la salvedad que te aparece un molesto cartel del alert.
¿¿¿Alguien puede orientarme para ver si esto se puede hacer Sincrono, y no Asincronicamente como esta ahora???
Desde ya, mil gracias