Flex:当'selectable'设置为'false'时,Datagrid中的行索引

时间:2011-03-02 21:09:36

标签: flex actionscript-3 datagrid itemrenderer selecteditem

这将是一个简单的问题,但属性'selectable'设置为'false',因此selectedItem始终为null。

在每行中我有3个按钮。单击按钮时,我需要提取与单击行相对应的数据。

任何想法我该怎么做?感谢。

2 个答案:

答案 0 :(得分:1)

我假设您正在使用MX DataGrid,对吗?

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

单击按钮时,会调度包含rowIndex的自定义事件。您应该能够使用rowIndex从dataProvider中获取所选项。

答案 1 :(得分: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
        }