Foros del Web » Programando para Internet » ASPX (.net) »

Problemas al llamar a una funcion .NET desde Javascript

Estas en el tema de Problemas al llamar a una funcion .NET desde Javascript en el foro de ASPX (.net) en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 07/03/2009, 07:12
 
Fecha de Ingreso: mayo-2004
Mensajes: 189
Antigüedad: 20 años
Puntos: 1
Problemas al llamar a una funcion .NET desde Javascript

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

Código:
                  while(valido==null){
                        
                    }
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
__________________
Nadie nacío sabiendo...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:27.