2011-05-12 10 views
6

Tengo este código. Quiero agregar botones en la segunda columna de los datos de Grird.Flex dataGrid botón Agregar en columna de cuadrícula de datos utilizando ItemRenderer?

<mx:DataGrid width="100%" height="95%" id="id_variableRefList" > 
    <mx:columns> 
    <mx:DataGridColumn id="id_name" dataField=""/> 
    <mx:DataGridColumn id="id_strip" dataField=""> 
    </mx:DataGridColumn> 
    </mx:columns> 
</mx:DataGrid> 

¿Cómo puedo agregar botones en la segunda columna usando un ItemRenderer?

Respuesta

9

Hay muchas formas de hacerlo.

Se podría utilizar un inline itemRenderer así:

<fx:Script> 
    public function myButton_clickHandler(event:Event):void 
    { 
    Alert.show("My button was clicked!"); 
    } 
</fx:Script> 

<mx:DataGrid width="100%" height="95%" id="id_variableRefList" > 
    <mx:columns> 
    <mx:DataGridColumn id="id_name" dataField=""/> 
    <mx:DataGridColumn id="id_strip" dataField=""> 
     <mx:itemRenderer> 
     <fx:Component> 
     <mx:VBox> 
     <mx:Button label="My Button" click="outerDocument.myButton_clickHandler(event);" /> 
     </mx:VBox> 
     </fx:Component> 
     </mx:itemRenderer> 
    </mx:DataGridColumn> 
    </mx:columns> 
</mx:DataGrid> 

O bien, podría crear un custom component and set the itemRenderer property del DataGridColumn.

<mx:DataGrid width="100%" height="95%" id="id_variableRefList" > 
    <mx:columns> 
    <mx:DataGridColumn id="id_name" dataField=""/> 
    <mx:DataGridColumn id="id_strip" dataField="" itemRenderer="MyCustomItemRenderer"/> 
    </mx:columns> 
</mx:DataGrid> 

ACTUALIZACIÓN: para obtener el ID del botón que se ha hecho clic, se puede utilizar la propiedad currentTarget del event que se pasa a su eventListener.

public function myButton_clickHandler(event:Event):void 
    { 
    Alert.show("Button " + Button(event.currentTarget).id + " was clicked!"); 
    } 
+0

señor, quiero preguntar una cosa más. Cómo puedo generar eventos desde este botón que puse al costado de la cuadrícula de datos. y puedo manejarlo fuera de datagrird.i quiero cuando hago clic en este botón se produce un evento que quiero manejar desde la cuadrícula de datos ........... ??? –

+0

@ali He actualizado mi respuesta para mostrar cómo se puede llamar a una función fuera del 'DataGrid' cuando se hace clic en el botón. Si mi respuesta ha ayudado a responder su pregunta, puede marcarla como la respuesta aceptada haciendo clic en la marca de verificación junto a mi respuesta. :) –

+0

gracias alotttt :) –

Cuestiones relacionadas