FlexDataGrid背景色如何调试

这篇文章主要为大家展示了“Flex DataGrid背景色如何调试”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Flex DataGrid背景色如何调试”这篇文章吧。

创新互联公司坚信:善待客户,将会成为终身客户。我们能坚持多年,是因为我们一直可值得信赖。我们从不忽悠初访客户,我们用心做好本职工作,不忘初心,方得始终。10年网站建设经验创新互联公司是成都老牌网站营销服务商,为您提供成都做网站、网站制作、网站设计、html5、网站制作、成都品牌网站建设、微信小程序定制开发服务,给众多知名企业提供过好品质的建站服务。

Flex DataGrid背景颜色调试

在Flex运用中经常提到的有关Flex DataGrid问题是如何改变Flex DataGrid单元格(cell),列(column)和行(row)的背景颜色(backgroundcolor)这里对这3种颜色做一个总结。

1.设置行(row)的背景色

主要是通过对Flex DataGrid扩展,对protected函数drawRowBackground()进行重写,具体代码如下:

overrideprotectedfunctiondrawRowBackground(s:Sprite,rowIndex:int,y:Number,height:Number,color:uint,dataIndex:int):void  {  if(dataIndex>=dataProvider.length){  super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);  return;  }  if(dataProvider.getItemAt(dataIndex).col3<2000){//setcoloraccordinttodatas  super.drawRowBackground(s,rowIndex,y,height,0xC0C0C0,dataIndex);  }else{  super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);  }  }

这段代码中根据Flex DataGrid的数据源进行判断来设置背景色,但是它有个缺陷,就是这个具体的背景色我们无法自己灵活指定。因此派生出新的CustomRowColorFlex DataGrid,具体代码如下:

packagecwmlab.controls  {  importmx.controls.*;  importflash.display.Shape;  importmx.core.FlexShape;  importflash.display.Graphics;  importflash.display.Sprite;  importmx.rpc.events.AbstractEvent;  importmx.collections.ArrayCollection;  importflash.events.Event;  /**  *Thisisanextendedversionofthebuilt-inFlexFlex DataGrid.  *Thisextendedversionhasthecorrectoverridelogicinit  *todrawthebackgroundcolorofthecells,basedonthevalueofthe  *dataintherow.  **/   publicclassCustomRowColorFlex DataGridextendsFlex DataGrid  {  privatevar_rowColorFunction:Function;  publicfunctionCustomRowColorFlex DataGrid()  {  super();  }  /**  *Auser-definedfunctionthatwillreturnthecorrectcolorofthe  *row.Usuallybasedontherowdata.  *  *expectedfunctionsignature:  *publicfunctionF(item:Object,defaultColor:uint):uint  **/   publicfunctionsetrowColorFunction(f:Function):void  {  this._rowColorFunction=f;  }   publicfunctiongetrowColorFunction():Function  {  returnthis._rowColorFunction;  }   /**  *Drawsarowbackground  *atthepositionandheightspecifiedusingthe  *colorspecified.ThisimplementationcreatesaShapeasa  *childoftheinputSpriteandfillsitwiththeappropriatecolor.  *ThismethodalsousesthebackgroundAlphastyleproperty  *settingtodeterminethetransparencyofthebackgroundcolor.  *  *@paramsASpritethatwillcontainadisplayobject  *thatcontainsthegraphicsforthatrow.  *  *@paramrowIndexTherow'sindexinthesetofdisplayedrows.The  *headerdoesnotcount,thetopmostvisiblerowhasarowindexof0.  *Thisisusedtokeeptrackoftheobjectsusedfordrawing  *backgroundssoaparticularrowcanre-usethesamedisplayobject  *eventhoughtheindexoftheitemthatrowisrenderinghaschanged.  *  *@paramyThesuggestedypositionforthebackground  *@paramheightThesuggestedheightfortheindicator  *@paramcolorThesuggestedcolorfortheindicator  *  *@paramdataIndexTheindexoftheitemforthatrowinthe  *dataprovider.Thiscanbeusedtocolorthe10thitemdifferently  *forexample.  */   overrideprotectedfunctiondrawRowBackground(s:Sprite,rowIndex:int,y:Number,height:Number,color:uint,dataIndex:int):void  {  if(this.rowColorFunction!=null){  if(dataIndex

在具体使用过程中可以这样调用:

 privatefunctionsetCustomColor(item:Object,color:uint):uint  {  if(item['col3']>=2000)  {  return0xFF0033;  }  returncolor;  }

2.设置Flex DataGrid列的背景色

这个很简单,只要设置Flex DataGridColumn的属性backgroundColor="0x0000CC"即可。

3.设置Flex DataGrid单元格(cell)的背景色

这个主要通过itemRenderer进行设置,itemRenderer可以是Label,也可以是其他如Flex DataGridItemRenderer。

先看看用Label如何设置背景色

        

用Flex DataGridItemRenderer进行背景色设置如下:

    =2000){  this.background=true;  this.backgroundColor=0x00cc00;  }  }  ]]>    

以上是“Flex DataGrid背景色如何调试”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


网页名称:FlexDataGrid背景色如何调试
标题链接:http://ybzwz.com/article/jpgpej.html