Comunidad de diseño web y desarrollo en internet online

Probelma con un itemrenderer

Citar            
MensajeEscrito el 12 May 2010 05:11 pm
Que tal aqui otra vez solicitando su ayuda.

El problema es el siguiente tengo una aplicacion que se compone de varios modulos y en algunos de ellos requiero que una imegen se muestre en un datagrid. estoy utilizando amfphp para la coneccion de base de datos y los proceso y flex3 para la interfaz. todo va muy bien me ingresa datos, actualiza y elimina el problema radica en ciertas partes y en ocaciones con la siguiente acciones

inserto un nuevo registro, el datagrid se actualiza pero en ocaciones me muestra la imagen correspondiente y en ocaciones no, si modifico en ocaciones actualiza la imagen y en ocaciones se queda con la anterior aunque fisicamente se haya modificado.

estos problemas los hace de manera indeterminada o sin ningun patron en especifico supongo que es algo con la cache o con el reseteo de los datos pero no podemos encontrar el problema. cabe mencionar que en algunos equipos lo hace y en otros no.

si alguien tiene idea de como lografuncionar esto nos ayudarian mucho de antemano gracias..

Por jorhcl

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 May 2010 06:06 pm
Es un tema de cache, ¿están usando algo de random en la carga?. Ejemplo

myLoader.load(new URLRequest("algun.swf")) //esto va a venir siempre de cache aunque cambie, excepto la primera vez of course

myLoader.load(new URLRequest("algun.swf?"+Math.random())) //Esto evita siempre la cache, no recomendable si no va a cambiar frecuentemente ya que fuerza la recarga siempre

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 May 2010 06:11 pm
es una aplicacion en base a modulo el asunto es que es con los datagrid en los renderers como los actualizo o a que swf llamo ? al modulo y le asigno un random?????

Por jorhcl

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 May 2010 06:12 pm
o hay una manera para actualizar solo el item renderer que carga la imagen ?

Por jorhcl

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 May 2010 03:26 pm
Solo el item renderer, claro, si lo haces directamente en el MXML con un tag Image por ejemplo, lo agregas en el source, sino en el componente personalizado o la clase

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 May 2010 03:43 pm
no te entiendo bien como implementarlo te dejo el codigo para ver si me pues ayudar

todo se trabaja en 2 archivos el modulo que es donde tengo el datagrid y el formulario que es un componenete y tiene accion de popUp

te dejo el dato del item renderer

Código :

<mx:DataGrid top="50" left="10" right="10" height="70%"  id="dataTipoAlimento">
      <mx:columns>
         <mx:DataGridColumn headerText="Nombre" dataField="nombre"/>
         <mx:DataGridColumn headerText="Icono" dataField="icono">
            
          <mx:itemRenderer >
               <mx:Component>
                  <mx:Image  width="30" height="30" source="{data.selectedItem.icono}"/>
               </mx:Component>
            </mx:itemRenderer>

                
            
            </mx:DataGridColumn>
         
      </mx:columns>
   </mx:DataGrid>


aqui esta el que llama a amfphp para hacer el guardado

Código :

private function metodoExecucion():void
{
   var datos:Object= new Object();
   var band:Boolean = true;
   //var especialidadS:Array = new Array();
   switch(opcion)
   {
      case 1:
      {
            
         datos.espe=seleccionac();
            
         if(this.nombreTipoA.text==""  &&  band)
         { Alert.show("Ingrese el nombre","ERROR"); band=false; }
                   
         if(this.logo.text=="" && band )
         { Alert.show("Seleccione un logo", "ERROR");  band=false; }
         
          if(datos.espe=="" && band )
         {Alert.show("Seleccione una especialidad"); band=false;   }
         
         if(band)
         {
            
         // llama al metodo de guardado
              datos.opc=opcion;
            datos.nombreTipoA=nombreTipoA.text;
            datos.logo=logo.text;
            conexion.call("TipoAlimento.executa", new Responder(resultTipoA,onFault),datos);
         }
             
      } 
      break;
      
      case 2:
      {
         // llamada al metodo de edicion
             seleccionac();
            datos.espe=seleccionac();    
            datos.opc=this.opcion;
            datos.nombreTipoA=this.nombreTipoA.text;
            datos.logo=this.logo.text;
            datos.idtipoa=idtipoa; 
            
         
            conexion.call("TipoAlimento.executa", new Responder(resultTipoA,onFault),datos);
         
         
      }
      break;
      
      
      
   }

}


y este es el que recibe la respuesta

Código :

public function resultTipoA(result:Array):void
 {
    
    if(result[0]==1)
    {
       //Alert.show("epieza a subir los archivos al usuario con id "+result[1].toString());
       
       var request:URLRequest = new URLRequest();
       var dir:URLVariables = new URLVariables();
       request.url = "upload.php";
       request.method = URLRequestMethod.GET;
       
       if(logo.text!="")
       {
          
          dir.idtipoa=result[1];
          request.data=dir;
          archivo.upload(request);
          var datosF:Object= new Object();
          var evento:StateEv = new StateEv(StateEv.STATEEV,"registro",datosF, true , true);
          nombreTipoA.text=""; nombre="";
          logo.text=""; icono="";
           parentApplication.dispatchEvent(evento);
            closeV();
             
         }
         
         
        
    }
    else
    {Alert.show("Error al agregar los datos  Ya existe el nombre");}
       
    
      
      //delay.stop();         
 }

Por jorhcl

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 May 2010 04:22 pm
Aquí:

<mx:Image width="30" height="30" source="{data.selectedItem.icono+'?'+Math.random()}"/>

Esto fuerza la carga de una imagen nueva cada vez, es decir te evita el cache

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 May 2010 04:30 pm
ya lo adapte pero ahora no me identifica la imagen aparece el item renderer pero no me muestra la imagen debe de estar tomando el '?'+math.random() como parte del nombre pero mi img no como lo resuevo ??

Por jorhcl

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 May 2010 05:11 pm
Esto funciona si lo vez desde un servidor, si lo vez desde el sistema de archivos lo toma literal y no funciona

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 May 2010 05:24 pm
ok entonces lo montare en un server de prueba y te comento Gracias

Por jorhcl

28 de clabLevel



 

firefox

 

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