簡體   English   中英

Flex:將“ selectable”設置為“ false”時,Datagrid中的行索引

[英]Flex: Row index in Datagrid when 'selectable' is set to 'false'

這將是一個簡單的問題,但是屬性'selectable'設置為'false',因此selectedItem始終為null。

在每一行中,我有3個按鈕。 單擊按鈕時,需要提取與單擊的行相對應的數據。

有什么想法我該怎么做? 謝謝。

我假設您使用的是MX DataGrid,對嗎?

在您的itemRenderer中,引用listData屬性並將其轉換為DataGridListData

單擊該按鈕時,調度一個包含rowIndex的自定義事件。 您應該能夠使用rowIndex從dataProvider中獲取所選項目。

這是我的項目渲染器

<?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
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM