2011-03-02 17 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 
     } 
相關問題