防止在Flex Datagrid的最后一行中显示某些数据

时间:2010-01-06 01:09:08

标签: flex actionscript-3 datagrid mxml itemrenderer

我有一些带有可编辑行的DataGrid,它还有一个“动态”添加新行的选项。我的意思是,最后一行有一些默认数据(例如“点击这里添加新行”),当用户点击它时,他可以编辑该值并最终插入新行。

但是,我在同一个DataGrid中也有一个列,它不是来自DataGrid的DataProvider。该列用于删除特定行,它应该只显示具有相关鼠标单击操作的可点击图像(在自定义itemRenderer中)。

我想在除最后一行之外的每一行上显示该图像。

到目前为止,这是我的DataGridColumn代码:

<mx:DataGridColumn width="20" editable="false">
    <mx:itemRenderer>
        <mx:Component>
            <mx:VBox creationComplete="cc()">
                <mx:Script>
                    <![CDATA[
                        import mx.controls.Alert;
                        import mx.events.CloseEvent;

                        public function cc():void{
                            delImg.source = "assets/images/delete-icon.png";
                        }
                    ]]>
                </mx:Script>
                <mx:Image id="delImg" smoothBitmapContent="true" width="15" height="15" click="outerDocument.confirmDelete(event)"/>
            </mx:VBox>
        </mx:Component>
    </mx:itemRenderer>
</mx:DataGridColumn>

我想我应该在我的cc函数中添加一些条件并以某种方式比较当前行的索引或者我的dataProvider长度...我不太确定如何做到这一点,因为我无法获取rowIndex属性,因为我这里没有使用DataGridEvent ...

请帮助我这个,非常感谢你的帮助! :)

1 个答案:

答案 0 :(得分:1)

VBox没有实现IDropInListItemRenderer。 IDropInListItemRenderer为您提供“listData”属性(类型为“DataGridListData”)。此外,“listData.owner”将是DataGrid对象,“listData.rowIndex”将为您提供rowIndex属性。