Comunidad de diseño web y desarrollo en internet online

Datagrid con combobox, funciona, pero a veces no

Citar            
MensajeEscrito el 22 Sep 2009 07:40 am
Hola de nuevo...

Tengo el siguiente problema, tengo un Datagrid el cual lo lleno de datos sacados de PostgreSQL, ok en eso estamos bien, pero tengo una columna en la cual hay un itemrenderer, especificamente un combobox, este combobox tambien es dinamico, por lo tanto se llena de opciones de acuerdo a la fila del datagrid, ya que que en cada fila cargo distintos tipos de ususarios los cuales tiene ciertas opciones, ok en eso tampoco hay problema jeje, el problema surge que una vez llenado el datagrid y intento llenarlo otra las opciones del combobox se desordenana, no de orden, sino que ya no aparecen los combobox que yo les asigne a cada usuario, o sea se cambian de lugares...

menos palabras, estes el datagrid en cuestion...

Código Flex :

<mx:DataGrid x="10" y="106" width="728" height="333" id="datosFun"
               dataProvider="{formulario.lastResult.funcionarios.funcionario}" editable="true">
               <mx:columns>
                  <mx:DataGridColumn headerText="Rut" dataField="rut" editable="false"/>
                  <mx:DataGridColumn headerText="Nombre" dataField="nombre" editable="false"/>
                  <mx:DataGridColumn headerText="Apellido Paterno" dataField="apellido_paterno" editable="false" width="140"/>
                  <mx:DataGridColumn headerText="Apellido Materno" dataField="apellido_materno" editable="false" width="140"/>
                  <mx:DataGridColumn headerText="Comuna" dataField="comuna" editable="false"/>
                  <mx:DataGridColumn headerText="Tipo" dataField="tipo" editable="false" width="100"/>
                  <mx:DataGridColumn headerText="Acciones" editable="true" rendererIsEditor="true" width="120">
                  
                           <mx:itemRenderer>
                               <mx:Component>
                                     <mx:ComboBox dataProvider="{opciones}" creationComplete="cambiar(this)" change="metodoLocal(this)" x="364" y="19">
                                                   
                                 <mx:Script>
                                        <![CDATA[
                                           import mx.collections.ArrayCollection;
                                           import mx.validators.ValidationResult;
                                           import mx.effects.easing.Back;
                                           import mx.controls.Alert;
                                           import mx.managers.*;
                                           import mx.events.*;
                                           import mx.core.Application;
                                           import modulos.plataforma.gestion_usuarios.funcionarios.*;
                                           import modulos.plataforma.gestion_usuarios.productores.*;
                                           import modulos.plataforma.gestion_usuarios.tecnicos.capacitaciones.capacitaciones;
                                           import modulos.plataforma.gestion_usuarios.tecnicos.uni_operativa.uni_operativa;
                                           [Bindable]
                                           public var opciones:Array
                                                                       
                                           public function cambiar(combo:ComboBox):void
                                           {
                                                 if(data.tipo=="Administrador")
                                                    opciones = 
                                                [
                                                 {label:"Info. Personal", data:"Info. Personal"},
                                                 {label:"Modificar", data:"Modificar"},
                                                 {label:"Baja", data:"Baja"},
                                                 {label:"Privilegios", data:"Privilegios"}
                                                ];
                                                
                                              if(data.tipo=="Tecnico")
                                                    opciones = 
                                                [
                                                 {label:"Info. Personal", data:"Info. Personal"},
                                                 {label:"Modificar", data:"Modificar"},
                                                 {label:"Baja", data:"Baja"},
                                                 {label:"Capacitaciones", data:"Capacitaciones"},
                                                 {label:"Uni. Operativa", data:"Uni. Operativa"}
                                                ];
                                                
                                        if(data.tipo=="Productor")
                                                    opciones = 
                                                [
                                                 {label:"Info. Personal", data:"Info. Personal"},
                                                 {label:"Modificar", data:"Modificar"},
                                                 {label:"Baja", data:"Baja"},
                                                 {label:"Info. Predial", data:"Info. Predial"}
                                                ];
                                                
                                         if(data.tipo=="Enc. de Comer.")
                                                    opciones = 
                                                [
                                                 {label:"Info. Personal", data:"Info. Personal"},
                                                 {label:"Modificar", data:"Modificar"},
                                                 {label:"Baja", data:"Baja"}
                                                ];
                                                
                                          combo.selectedIndex=0;
                                           }
                                                                        
                                           public function metodoLocal(combo:ComboBox):void
                                           {
                                                 if(data.tipo=="Tecnico")
                                                 {   
                                                    if(combo.text=="Modificar")
                                                 {
                                                    cursorManager.setBusyCursor();
                                                       var mod:modificar=modificar(PopUpManager.createPopUp(Application.application as DisplayObject,modificar,true));
                                                       mod.buscar(data.rut);
                                                       PopUpManager.centerPopUp(mod);
                                                    }
                                                 if(combo.text=="Baja")
                                                 {                                          
                                                    cursorManager.setBusyCursor();
                                                    var ba:baja=baja(PopUpManager.createPopUp(Application.application as DisplayObject,baja,true));
                                                    ba.buscar(data.rut);
                                                    PopUpManager.centerPopUp(ba);
                                                    }
                                                    
                                                    if(combo.text=="Capacitaciones")
                                                 {                                                 
                                                    cursorManager.setBusyCursor();
                                                    var cap:capacitaciones=capacitaciones(PopUpManager.createPopUp(Application.application as DisplayObject,capacitaciones,true));
                                                    cap.verifTecnico(data.rut);
                                                    PopUpManager.centerPopUp(cap);
                                                    }
                                                    
                                                    if(combo.text=="Uni. Operativa")
                                                 {                                                 
                                                    cursorManager.setBusyCursor();
                                                    var uni:uni_operativa=uni_operativa(PopUpManager.createPopUp(Application.application as DisplayObject,uni_operativa,true));
                                                    uni.verifUnidad(data.rut);
                                                    uni.rut.text=data.rut;
                                                    uni.nombre.text=data.nombre;
                                                    PopUpManager.centerPopUp(uni);
                                                    }
                                                 }
                                                 
                                                 if(data.tipo=="Productor")
                                              {
                                                 if(combo.text=="Modificar")
                                                 {
                                                    cursorManager.setBusyCursor();
                                                       var modProd:modificarProductor=modificarProductor(PopUpManager.createPopUp(Application.application as DisplayObject,modificarProductor,true));
                                                       PopUpManager.centerPopUp(modProd);
                                                       modProd.buscarProductor(data.rut);
                                                    }
                                                 if(combo.text=="Baja")
                                                 {                                          
                                                    ///
                                                    }
                                                 }
                                                 
                                                 combo.selectedIndex=0;
                                              }
                                               
                                        ]]>
                                        </mx:Script>
                              </mx:ComboBox>
                               </mx:Component>
                           </mx:itemRenderer>
                        
                       </mx:DataGridColumn>
                     
               </mx:columns>
            </mx:DataGrid>


Gracias de antemano....

Por geminis19

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Sep 2009 12:03 am
por favor si alguien sabe que me ayude.... es de suma urgencia....

Por geminis19

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2009 11:07 pm
:( :( :(

A nadie se le ocurre porque al asignarle los item al array del combobox este no siempre es el correcto, o sea que al gunas veces se crea el el array con los item de un productor y otras veces se crea el array del combobox con los item de un tecnico y no conciden con la fila del datagrid, o sea de repenete en una fila del datagrid hay datos de un productor y el array del combobox se llena con los datos de un tecnico....


ayuda pliss...

Por geminis19

11 de clabLevel



 

firefox

 

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