如何更改Flex DataGrid中单个单元格的样式?

时间:2011-06-13 11:35:57

标签: flex actionscript datagrid

我有一个Flex DataGrid,其中一个单独的单元格需要以与其他单元格不同的方式呈现。具体来说,对于网格的一行,应隐藏其中一个单元格。

DataGridColumn在我的.mxml文件中设置如下:

    <mx:DataGridColumn editable="false" dataField="interactive" headerText="Select?" width="45">
        <mx:itemRenderer>
            <mx:Component>
                <mx:CheckBox selectedField="isInteractive"
                             click="data.isInteractive=!data.isInteractive; this.parent.parent.dispatchEvent(new Event('interactive_changed'));" 
                             paddingLeft="5"/>
            </mx:Component>
        </mx:itemRenderer>
    </mx:DataGridColumn>

我最初的想法是将条件添加到mx:CheckBox,如下所示:

<mx:CheckBox visible="{!data.isBackground}" ...

但是这不起作用 - 事实上它以一种相当有趣的方式混淆了显示器(行中的其他一个单元格中有一个额外的复选框......去图)。 / p>

我怀疑通过使用自定义ItemRenderer类可能是可能的,但对于一个相当简单的情况,这似乎是很多代码开销。有什么想法吗?

(如果相关,我正在使用Flex 3.5。)

1 个答案:

答案 0 :(得分:0)

在Flex 3.5中,您需要一个自定义的itemRenderer。

我这样做的方式是我有两种状态。正常和“复选框”,然后当您覆盖itemRenderer中的数据设置器时,相应地更改您的状态。

在Flex 4+中,Spark数据网格上有一个“itemRendererFunction”属性,您可以通过编程方式选择itemRenderer,这非常酷。