Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/11/2006, 19:02
Avatar de TMeister
TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 10 meses
Puntos: 193
Que tal.

Vaya, al fin una pregunta de Flex. =)

Bien, para agregar componentes a otro componente, es este caso un ComboBox a un Datagrid se usa la propiedad itemRenderer.

Para ello necesitas 2 Archivos MXML uno que es tu aplicacion principal donde se encuentra el Datagrid, y otro que sera el Renderer, en este caso el que contendra el ComboBox. y a la columna donde quieres que aparesca el ComboBox agregarle la propiedad itemRenderer algo asi.

test.mxml.

Código HTML:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:XMLList id="employees">
        <employee>
            <name>Christina Coenraets</name>
            <phone>555-219-2270</phone>
            <active>true</active>
        </employee>
        <employee>
            <name>Joanne Wall</name>
            <phone>555-219-2012</phone>
            <active>true</active>
        </employee>
        <employee>
            <name>Maurice Smith</name>
            <phone>555-219-2012</phone>
            <email>[email protected]</email>
            <active>false</active>
        </employee>
        <employee>
            <name>Mary Jones</name>
            <phone>555-219-2000</phone>
            <active>true</active>
        </employee>
    </mx:XMLList>

    <mx:Panel height="50%" width="50%" 
        paddingTop="10" paddingLeft="10" paddingRight="10">

        <mx:DataGrid id="dg" width="100%" height="100%" rowCount="5" dataProvider="{employees}">
            <mx:columns>
                <mx:DataGridColumn dataField="name" headerText="Name"/>
                <mx:DataGridColumn dataField="phone" headerText="Phone"/>
                <mx:DataGridColumn dataField="active" headerText="Active" itemRenderer="cellRenderer"/>
            </mx:columns>
        </mx:DataGrid>
        
    </mx:Panel>
</mx:Application> 
Como vez en la linea
Código HTML:
<mx:DataGridColumn dataField="active" headerText="Active" itemRenderer = "cellRenderer"/> 
seteas el itemRenderer ahra necesitas un segundo archivo MXML llamado cellRenderer.mxml


cellRenderer.mxml

Código HTML:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="150" height="25">
	<mx:Script>
        <![CDATA[

            [Bindable]
            public var cards: Array = [ {label:"Visa", data:1}, 
                {label:"MasterCard", data:2}, {label:"American Express", data:3} ];
        
            [Bindable]
            public var selectedItem:Object;        
        ]]>
    </mx:Script>
	<mx:ComboBox x="0" y="0" width="150" dataProvider="{cards}" id="combo"></mx:ComboBox>
</mx:Canvas> 
y listo ya tienes tu ComboBox dentro del Datagrid..

Saludos!!