[英]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.