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....
