Flex DataGrid DataGridColumn数据颜色多样化-类型替换
作者:
用得多了,发觉自己了解的真的是九牛之一毛都没有,最近用到了从后台读出数据时显示的问题,相信很多人都有用整形数据来代替字符串数据的情况
比如 0--关闭(red),1--开启(green),
就这两个比较简单的代表.在读出数据的时候,需要按照上面的标注来显示其字体的颜色,这个时候,有好几种处理方法,不过目的只有一种.就是为了得到颜色字体.
这里就直接给出程序吧,其实很简单.还有另外的两三种方法吧,呵呵,其实由于用法相当多,它的设置参数也十分的多,根据需要可以设置出不同的效果出来.希望对大家有帮助.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<!--[CDATA[
]]>
</mx:Script>
<mx:ArrayCollection id="dataArray">
<mx:Object>
<mx:Key>0</mx:Key>
<mx:Value>关闭</mx:Value>
</mx:Object>
<mx:Object>
<mx:Key>1</mx:Key>
<mx:Value>开启</mx:Value>
</mx:Object>
</mx:ArrayCollection>
<mx:DataGrid dataProvider="{dataArray}" x="320" y="135">
<mx:columns>
<mx:DataGridColumn headerText="Key" dataField="Key" >
</mx:DataGridColumn>
<mx:DataGridColumn headerText="Value" dataField="Value" >
<mx:itemRenderer>
<mx:Component>
<mx:Label textAlign="center">
<mx:Script>
<![CDATA[
override public function set data(value:Object):void
{
super.data = value;
if (value.Key=="1")
{
this.setStyle("color","green");
}
else if(value.Key=="0"){
this.setStyle("color","red");
}
}
]]-->
</mx:Script>
</mx:Label>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:Application>
就这两个比较简单的代表.在读出数据的时候,需要按照上面的标注来显示其字体的颜色,这个时候,有好几种处理方法,不过目的只有一种.就是为了得到颜色字体.
这里就直接给出程序吧,其实很简单.还有另外的两三种方法吧,呵呵,其实由于用法相当多,它的设置参数也十分的多,根据需要可以设置出不同的效果出来.希望对大家有帮助.
复制代码 代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<!--[CDATA[
]]>
</mx:Script>
<mx:ArrayCollection id="dataArray">
<mx:Object>
<mx:Key>0</mx:Key>
<mx:Value>关闭</mx:Value>
</mx:Object>
<mx:Object>
<mx:Key>1</mx:Key>
<mx:Value>开启</mx:Value>
</mx:Object>
</mx:ArrayCollection>
<mx:DataGrid dataProvider="{dataArray}" x="320" y="135">
<mx:columns>
<mx:DataGridColumn headerText="Key" dataField="Key" >
</mx:DataGridColumn>
<mx:DataGridColumn headerText="Value" dataField="Value" >
<mx:itemRenderer>
<mx:Component>
<mx:Label textAlign="center">
<mx:Script>
<![CDATA[
override public function set data(value:Object):void
{
super.data = value;
if (value.Key=="1")
{
this.setStyle("color","green");
}
else if(value.Key=="0"){
this.setStyle("color","red");
}
}
]]-->
</mx:Script>
</mx:Label>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:Application>