我有这个代码.我想在data grird的第二列中添加Buttons.
<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>
如何使用ItemRenderer在第二列中添加按钮?
解决方法
有很多方法可以做到这一点.
您可以像这样使用inline itemRenderer:
<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>
或者您可以创建DataGridColumn的custom component and set the itemRenderer
property.
<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>
更新:
要获取单击的按钮的id,可以使用传递给eventListener的事件的currentTarget属性.
public function myButton_clickHandler(event:Event):void { Alert.show("Button " + Button(event.currentTarget).id + " was clicked!"); }