Content

Flex 自定义DataGrid实现根据条目某一属性值改变背景颜色(flex布局可以自适应吗)全程干货

文章摘要

这篇文章主要介绍了`czgh.components`包中一个名为`OptionalDataGrid`的类。该类继承自`mx.controls.DataGrid`,并定义了两个自定义的方法`drawRowBackground`和`drawHeaderBackground`。`drawRowBackground`方法用于绘制表格行的背景颜色,可以使用自定义的函数来实现颜色的动态变化。`drawHeaderBackground`方法则用于设置表头的背景颜色。此外,该类还定义了三个私有变量:`_rowColorFunction`用于存储行颜色函数,`_customed`用于控制是否启用自定义函数,以及`_customerColor`用于指定默认颜色值。这些功能使得`OptionalDataGrid`能够灵活地自定义表格的外观,满足特定的可视化需求。

 package czgh.components { import flash.display.Sprite; import mx.controls.DataGrid; import mx.core.UIComponent; public class OptionalDataGrid extends DataGrid { private var _rowColorFunction:Function; private var _customed:Boolean; private var _customerColor:uint=0; public function OptionalDataGrid() { super(); } override protected function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void { color=0XFFFFFF; if(this._rowColorFunction !=null) { if (dataIndex < this.dataProvider.length) { var item:Object=this.dataProvider.getItemAt(dataIndex);//设定颜色 color=this._rowColorFunction.call(this, item, color); } } super.drawRowBackground(s, rowIndex, y, height, color, dataIndex); } override protected function drawHeaderBackground(headerBG:UIComponent):void { headerBG.setStyle(“borderVisible”,”false”); } public function set rowColorFunction(rowColorFunction:Function):void { this._rowColorFunction=rowColorFunction; } public function get rowColorFunction():Function { return this._rowColorFunction; } } }