可以动态添加行背景色的flex datagrid控件
来源:互联网 发布:奥迪a8矩阵式led大灯 编辑:程序博客网 时间:2024/05/29 16:30
flex自带的datagrid控件是不能改变行的背景色的,项目中间遇到这种需求了,要根据数据某个属性来让每行显示不同的背景色,我们可以重写datagrid控件来实现该功能。
package com.iman.nrms.nrmcs.ascript{import flash.display.Sprite;import mx.controls.DataGrid;import mx.controls.listClasses.IListItemRenderer;/* 添加根据条件改变该行颜色功能*/public class ImanZynDataGrid extends DataGrid{public var rowColorFunction:Function;//若需要默认颜色,则该函数返回0即可,否则返回需要的颜色public function ImanZynDataGrid(){super();}override protected function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void{var oldColor:uint = color;//存贮默认颜色,若没有返回值,则显示皮肤定义的控件默认颜色if(rowColorFunction != null){var item:Object;if(dataIndex < dataProvider.length){item = dataProvider[dataIndex];}if(item){//color = rowColorFunction(item,rowIndex,dataIndex,color);color = rowColorFunction(item);if(color == 0){color = oldColor;}//this.setStyle("rollOverColor",""+ rowColorFunction(item)+"");//this.setStyle("selectionColor",""+ rowColorFunction(item)+"");}}super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);} }}
mxml代码
//更改背景色颜色
protected function changeRowColor(o:Object):uint
{
//是否可分配 1 为可分配(默认颜色) 0 为不可分配(红色) 2不可操作(黄色)
var color:uint;
if(o.isDistribution=="0"){
color = 0xff9900;
}else if(o.isDistribution=="1" || o.isDistribution=="" || o.isDistribution==null){
color = 0xd4e1f2;
}else if(o.isDistribution=="2"){
color = 0xFFF68F;
}
return color;
}
<ascript1:ImanZynDataGrid rowCount="8" rowColorFunction="changeRowColor" selectable="false" dataProvider="{new ArrayCollection()}" id="curcuit" width="100%"><ascript1:columns><mx:DataGridColumn dataField="" headerText="不可分配"><mx:itemRenderer><fx:Component><mx:CheckBox enabled="{data.isDistribution=='2'?false:true}" textAlign="center" selected="{data.isDistribution=='1'||data.isDistribution=='' || data.isDistribution==null?false:true}" click="outerDocument.checkBox_clickHandler(event,data);data.selected=!data.selected;data.isDistribution=='0'?data.isDistribution='1':data.isDistribution='0'" /></fx:Component></mx:itemRenderer></mx:DataGridColumn><mx:DataGridColumn dataField="name" headerText="电路编号"/><!--<mx:DataGridColumn dataField="asiteName" headerText="A端站点"/>--><mx:DataGridColumn dataField="aneName" headerText="A端设备"/><mx:DataGridColumn dataField="aportName" headerText="A端端口"/><mx:DataGridColumn dataField="aodfPortName" headerText="A端DDF"/><!--<mx:DataGridColumn dataField="zsiteName" headerText="Z段站点"/>--><mx:DataGridColumn dataField="zneName" headerText="Z端设备"/><mx:DataGridColumn dataField="zportName" headerText="Z端端口"/><mx:DataGridColumn dataField="zddfPort" headerText="Z端DDF"/></ascript1:columns></ascript1:ImanZynDataGrid>
此处有一个问题,当鼠标放到行数据上的时候,该行会变色,会影响自定义的背景色,将datagrid的selected设置为false就可以解决该困扰了。
- 可以动态添加行背景色的flex datagrid控件
- flex datagrid 动态设置行背景色
- 改变Flex DataGrid 行的背景色
- 改变Flex DataGrid 行的背景色
- EasyUI datagrid 改变行的背景色
- 改变datagrid的背景色
- Flex List行背景色
- 使用draggablegridview开源库添加自定义控件可以显示,添加自定义的layout文件可以显示背景色但是无法显示其控件
- DataGrid 技巧:更改某一行的背景色
- DataGrid 技巧:更改某一行的背景色
- 如何更改DataGrid中某一行的背景色
- 改变控件的背景色
- MFC可以设置字体名称、大小、字体前景色、背景色的Static控件
- Flex DataGrid单元格背景色 单元格字体颜色控制
- 为table动态添加行;根据行的奇偶性对行的背景色进行设置,以及当鼠标移到该行和离开该行时的背景色
- Flex设置LinkButton的背景色
- flex datagrid 动态添加序列号
- MFC中button控件背景色和字体的设置,或者可以采用添加背景图片的方法;已验证有效MFC其他的简单使用使用
- flex为datagrid数据添加序号
- hibernate的sql查询别名问题
- 在windows下和linux下获取文件绝对路径
- MD5加密
- java获取ip地址
- 可以动态添加行背景色的flex datagrid控件
- java类大批量导入数据到MYSQL
- MYSQL树状查询
- struts2源码研究(一)------配置struts2源码项目
- flex + red5实现视频会议
- mysql 字符串函数
- oracle 字符串函数
- amf协议
- spring事务配置的五种方法