Hola; como bien dice el titulo mi problema es con AJAX Sincronico en Framework 2.
Para esto uso Visual Studio 2010 y no puedo cambiar la version del framework.
Bueno tengo un Web Site (no un application site). El mismo tiene 4 combos: cliente - proyectos - tareas - subtareas que se cargan entre si. ( o sea un cliente tiene X proyectos y a su vez cada proyecto tiene X Tareas, y asi..... Y por ultimo tengo un calendario.
Este web site me deja seleccionar una opcion de cada combo y guardar en una base de datos.
Por ejemplo podria grabar un ROW con cliente "IBM", proyecto "ABM", tarea "General", Subtarea "desconodo", fecha "2012-06-05".
Puedo guardar muchos rows para una fecha
Ahora bien; ahora tengo que recuperar esos rows guardados ... por lo que cada vez que selecciono un fecha de calendario llamo a un AJAX .Net el cual por el lado server me trae info para llenar los combos anteriores
Por lo tanto una vez que me trajo el JSON hago un "for" y recorro cada registro.
Pero que pasa? Para seleccionar una opcion del combo antes deben estar cargados (OBVIO).
Entonces dinamicamente inserto un rows "<TR>" a mi tabla.... Y ACA EL PROBLEMA!
Tengo que llamar a otros ajax para que me carguen los combos.
Son 4 AJAX a llamar... (cliente, proyecto, tarea, subtarea) y del lado cliente cada uno llamara a su storade y obtendra la data que le corresponde.
Ejemplo
for( Tengo 2 rows )
1 - llamada al ajax de cliente.
2- selecciono una opcion del combo de cliente
3- comboCliente.change(). Por lo tanto desencadeno la llamada a los proyectos de ese cliente
4- asi con lo demas.
EL ERROR:
Es tan rapido el for que se produce asincronismo, o sea no termino de cargar los combos del primer row que ya inserto el segundo row del for y la data del primer row la mete en el segundo (¬¬).
El ajax que utilizo algo como esto:
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
<INPUT onclick="_Default.nombre_funcion_servidor(parámetr o1, parámetro2, ...,
parámetroN, nombre_funcion_servidor_CallBack);"
----------------------------------------------------------------------------
-----------------------------------------------------------------------------
[Ajax.AjaxMethod()]
public DataSet nombre_funcion_servidor((parámetro1, parámetro2, parámetroN)
{
Dataset info = new DataSet();
- aca lo cargo-
return info;
}
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
<script type="text/javascript">
function nombre_funcion_servidor_CallBack(response){
carga la tabla con rows dinamicos!!!
if (response.error != null){
alert("Los valores introducidos no son válidos.");
return;
}
}
</script>
LES ACLARO QUE LOS AJAX FUNCIONAN BIEN. Como me doy cuenta? porque esas funciones ajax son las mismas con las que cargue los rows al principio en la DB.
Ahora bien, como puedo hacer para q estas llamadas sean SINCRONICAS?
Por favor, no me pidan usar AjAx de Jquery porque ya lo probe... pero llamando a un WebMethod de un asmx y me da un error 200 OK! O sea no llega a leer el WebMethod.
SE QUE FUNCIONA BIEN, PORQUE LO PASE A FRAMEWORK 4 Y LO ENCUENTRA. No funca en Framework 2!!!!!
Saludos y Gracias!!!