Comunidad de diseño web y desarrollo en internet online

Refresh Datagrid Flex 3

Citar            
MensajeEscrito el 16 Jun 2011 02:26 pm
Hola amigos de Flex 3 tengo un datagrid y mi problema es actualizarla cada vez que hago un insert en Mysql via PHP. Si cierro el explorer, y vuelvo a la aplicaicón, los datos aparecen actualizados.
Les paso el httpService, cuando hago el insert, de inmediato hago el cargaGRILLA.send().

Pero en la función indicada en el result, parece que no pasa nada.

<mx:HTTPService id="cargaGRILLA" url="grillaexped.php" result="LlegandatosGrilla(event)" resultFormat="e4x"/>

function LlegandatosGrilla(evt:ResultEvent):void {
GP = evt.result.expediente;
grilla.dataProvider = GP;
}

El php funciona correctamente. Quiero decir, trae los datos bien.

Bueno, les agradezco muchísimo la ayuda que me puedan dar! Gracias! :D

Por tdg_2005

68 de clabLevel



 

msie8
Citar            
MensajeEscrito el 16 Jun 2011 02:49 pm
Tienes dos opciones> la mas económica es agregar el item manualmente al dataProvider del datagrid y reasignarlo (si lo haces BINDABLE te evitas la reasignación), la otra es volver a disparar el HTTPService cada vez que insertes datos, te vuelve a traer toda la data

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Jun 2011 02:57 pm
Gracias por responder Jorge, lo que estoy haciendo, es en dos lineas:

insertar.send(); // inserto los registros
cargaGRILLA.send(); // traigo el XML

y en el result voy a la misma función que define el dataprovider, tal como escribí arriba. Eso sería disparar el Http entonces, pero no actualiza.

Por tdg_2005

68 de clabLevel



 

msie8
Citar            
MensajeEscrito el 16 Jun 2011 03:01 pm
Lo debe estar tomando del cache, agrega algo de random

url="{'grillaexped.php?'+Math.random()}"

Igual no es lo mas adecuado si los datos son muchos

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Jun 2011 05:14 pm
Gracias Jorge, algo avanzamos. Sigue sin refrescar, pero si le doy F5 refresca. Ahora no hay necesidad de cerrar el navegador. te agradezco si se te ocurre algo más....

Por tdg_2005

68 de clabLevel



 

msie8
Citar            
MensajeEscrito el 16 Jun 2011 05:18 pm
No, el HTTPService se tiene que reenviar y refrescar el dataprovider sin necesidad de recargar. Usa un sniffer, por ejemplo http://www.charlesproxy.com para ver si el request se esta enviando

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Jun 2011 06:37 pm
no puedo usarlo no me permiten en mi red los administradores.....yo envio el httpservice con
cargoGRILLA.send() está bien?

lo que podría ser es algún asincronismo con la línea inmediata superior?
hago consecutivas:

insert.send();
cargoGRILLA.send();

Por tdg_2005

68 de clabLevel



 

msie8
Citar            
MensajeEscrito el 16 Jun 2011 06:40 pm
Claro, hasta que no tengas el resultado del insert, no puedes recargar el datagrid.

Jorge

Tip: si quieres poder debuggear back-end de tus aplicaciones, pide que te lo instalen

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Jun 2011 07:16 pm
Pude confirmar que el send lo hace, y vuelve, lo manejo con Alert, una función más y mensajes, anda perfecto. Agregué otro Http y es así, confirmado. El problema se da con la caché, a partir de la segunda vez que corro el htttp. Hay alguna otra manera de "limpiar" que
url="{'grillaexped.php?'+Math.random()}"

ignora el Math. random() ?

Gracias Jorge!

Por tdg_2005

68 de clabLevel



 

msie8
Citar            
MensajeEscrito el 16 Jun 2011 07:29 pm
¿Estás esperando a que el onResult del insert vuelve antes de recargar la grilla?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Jun 2011 07:32 pm
estoy teniendo dudas por el asincr.....

lo que hice fue un pequeño truco para "secuenciar", el result del insert va a una function,
<mx:HTTPService id="insertar" result="checkInsert(event)"...........
luego, en la función hago:
private function checkInsert(evt:ResultEvent):void
{cargaGRILLA.send();}

está bien esto?

Por tdg_2005

68 de clabLevel



 

msie8
Citar            
MensajeEscrito el 16 Jun 2011 08:04 pm
Eso es lo que quería decir

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Jun 2011 10:10 pm
Entonces estoy perdido....hay alguna otra manera de limpiar la caché?
Gracias! :D

Por tdg_2005

68 de clabLevel



 

msie
Citar            
MensajeEscrito el 24 Jun 2011 01:41 pm
Jorge, después de mucho investigar, tenías razón, con el random andaba bien, pero era un error mio en el código, ya lo corregí. Quería escribirte esto por si alguien lo lee, para que sepa que tu solución era la correcta.

Gracias! :D

Por grodrig61

Claber

223 de clabLevel



 

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.