2011-03-02 50 views

回答

1

我假设你使用的是MX DataGrid,对吗?

在您的itemRenderer中,引用listData属性并将其转换为DataGridListData

单击按钮时发送包含rowIndex的自定义事件。您应该能够使用rowIndex从dataProvider中获取选定的项目。

0

这是我的项目渲染

<?xml version="1.0" encoding="utf-8"?> 
<s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
          xmlns:s="library://ns.adobe.com/flex/spark" 
          xmlns:mx="library://ns.adobe.com/flex/mx" 
          focusEnabled="true"> 
    <fx:Script> 
     <![CDATA[ 
      public var parentView:Object; 

      public static function getEditDeleteRenderer(view:Object):ClassFactory{ 
       var editDeleteRenderer:ClassFactory = new ClassFactory(EditDeleteRenderer); 
       editDeleteRenderer.properties = { parentView:view }; 
       return editDeleteRenderer; 
      } 

      function editItem():void{ 
       parentView.editItem(data); 
      } 
      function deleteItem():void{ 
       parentView.deleteItem(data); 
      } 
     ]]> 
    </fx:Script> 
    <mx:HBox paddingLeft="5"> 
     <mx:Image source="assets/edit.png" click="editItem()" /> 
     <mx:Image source="assets/delete.png" click="deleteItem()" />   
    </mx:HBox> 
</s:MXDataGridItemRenderer> 

这是我如何使用它

<mx:DataGridColumn headerText="Activity" width="100" itemRenderer="{EditDeleteRenderer.getEditDeleteRenderer(this)}" /> 

 public function editItem(foo:Foo){ 
        // do edit operation 
     } 


     public function deleteItem(foo:Foo):void{ 
        // do delete operation 
     } 
相关问题