0

如何指定 Flex 中 AdvancedDataGridColumnGroup 中包含的特定单元格内的文本颜色?代码在动作脚本中,文本颜色根据单元格包含的值而变化。即,如果它是负值,则必须以红色显示,否则为黑色。

请提及是否有任何解决方法!

谢谢!

4

1 回答 1

0

我已经用你描述的功能做了例子。希望,它会有所帮助。

        <mx:AdvancedDataGrid id="grid"
                             itemRenderer="MyAdvancedDataGridItemRenderer"
                             dataProvider="{dataProvider}"
                             width="200" height="100%">

            <mx:groupedColumns>
                <mx:AdvancedDataGridColumn dataField="name"/>
                <mx:AdvancedDataGridColumn dataField="score"/>
            </mx:groupedColumns>
        </mx:AdvancedDataGrid>

        <mx:Script>  
            <![CDATA[  
                import mx.collections.ArrayCollection;

                [Bindable]  
                private var dataProvider:ArrayCollection = new ArrayCollection([  
                    {name:"Name1", score:-12},   
                    {name:"Name2", score:10},   
                    {name:"Name3", score:-100},   
                ]);
            ]]>  
        </mx:Script> 
    </mx:Application>

和 MyAdvancedDataGridItemRenderer.as 类:

package
{
    import mx.controls.advancedDataGridClasses.AdvancedDataGridItemRenderer;
    import mx.controls.advancedDataGridClasses.AdvancedDataGridListData;

    public class MyAdvancedDataGridItemRenderer extends AdvancedDataGridItemRenderer
    {

        public function MyAdvancedDataGridItemRenderer()
        {
            super();
        }

        override public function validateProperties():void
        {
            super.validateProperties();
            if (listData)
            {
                var item:Object = AdvancedDataGridListData(listData).item;
                if (AdvancedDataGridListData(listData).dataField == "score") {
                    setStyle("color", item.score < 0 ? 0xff0000 : 0x000000);
                }
            }
        }
    }

}
于 2013-01-18T08:24:18.620 回答