前阵子在做Flex网页时,关于单元格字体颜色这方面纠结了好久。现在总结一下实现方法
一、单元格背景色:
修改单元格背景色就需要借助与itemRenderer了。这个itemRenderer如果是Label的话,利用opaqueBackground属性;或者利用DataGridItemRenderer:
override function set data():void
{
this.background = true;
this.backgroundColor = 0xCC0000;
}
不过这种方法会有问题,因为itemRenderer是重复利用的,这样再点击滚动条时,就会出现错乱的情况。
解决方法:
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
var colors:Array=[0x92f196,0x92f196];
var alphas:Array=[0.3,0.3];
var ratios:Array=[0x00,0xff];
var myListData:DataGridListData=DataGridListData(listD ata);
if(myListData.dataField=="UN")//if(Number(data.UN)=100)也可以这样
{
this.graphics.clear();
this.graphics.beginGradientFill(GradientType.LINEA R,colors,alphas,ratios);
this.graphics.drawRect(0,0-topHeight,unscaledWidth ,26);
}
else
this.graphics.clear();
}
二、单元格字体颜色控制:
有两种方法,第一种通过htmlText属性,另一种在itemRenderer的updateDisplayList函数(或者借助于stylefunction)。倘若是修改过的单元格数据变为红色的话,就需要记录旧值,然后itemEditEnd之后去做比较。以下为记录旧值的情况:
htmlText:htmlText="{data.hasOwnProperty('OldData') ?(data.OldData.UN!=null?
''+data.UN+'Array = classInfo["properties"];
for (var i:int = 0; i < properties.length; i++)
{
var property:String = properties[i];
oldData[property] = data[property];
}
//oldData属性中,记录的是原object
data.oldData = oldData;
}//这种方法记录了data的所有属性,这段代码也可以写在datagrid的itemEditBegin事件中
//此时需要var data:Object = evt.itemRenderer.data;
2.在datagrid的itemEditEnd事件中做记录,此时记录的只是需要记录的字段
if(evt.dataField == "Freight")
{
if(data.Freight != TextInput(evt.target.itemEditorInstance).text)//值发生改变后才去判断
{
if(!data.hasOwnProperty("OldData"))
{
var obj1:Object = new Object();
obj1.Freight = TextInput(evt.target.itemEditorInstance).text;
data.OldData = obj1;
GridChangeTag++;//变量用于记录是否做过修改,用于其它操作
}
else
{
if(data.OldData.Freight == null)//之前没有该字段的记录,但是有OldData属性
data.OldData.Freight = data.Freight;
else
{
//值修改为原值则删除该字段的记录
if(data.OldData.Freight == TextInput(evt.target.itemEditorInstance).text)
delete data.OldData.Freight;
//此时多加一步判断用于删除OldData属性
if(data.OldData.Freight == null && data.OldData.TransSName == null)
{
delete data.OldData;
GridChangeTag--;
}
}
}
}
}
补充一点关于styleFunction的实现方法:(AdvancedDataGridColumn才有的属性styleFunction="styleHandler")
private function styleHandler(data:Object, column:AdvancedDataGridColumn):Object
{
if (!data.hasOwnProperty("oldData"))
return {color: 0x000000, textSelectedColor: 0x000000, textRollOverColor: 0x000000};
//值没有做修改的情况
if (data[column.dataField] == data.oldData[column.dataField])
return {color: 0x000000, textSelectedColor: 0x000000, textRollOverColor: 0x000000};
return {color: 0xFF0000, textSelectedColor: 0xFF0000, textRollOverColor: 0xFF0000};
}
发表评论
-
判断是否是正确日期字符串的函数
2012-07-06 09:52 1136个人写的一个判断是否是正确日期字符串的函数, 请大家点评 ... -
PyQt4--QLineEdit内引入正则表达式
2012-07-06 09:46 1512from PyQt4.QtCore import * ... -
杂记之通过style样式xml定义规范组件属性
2012-07-03 13:44 977效果图 main.xml 组件进行关联 --& ... -
Flex 不支持GIF的解决方法
2012-07-02 13:12 892GIF图片,加载到Image后,不能动起来,需要把 gif ... -
使用Flex和Actionscript开发Flash游戏――碰撞检测
2012-07-02 13:12 578这一部分,我们加 ... -
完美解决Panel设置了borderSkin后内容体与标题栏重叠的问题
2012-07-02 13:12 785如果您做过Flex皮肤 ... -
flex 实现的多点切割+mask蒙版+自动识别非透明区域+自适应图片大小
2012-07-02 13:12 1455先上代码: 1){ ... -
flex 界面改进
2012-07-02 13:12 572f 代码如下: ... -
flex 实现的多点切割+mask蒙版+自动识别非透明区域+自适应图片大小
2012-07-01 10:44 1208先上代码: Arr ... -
flex 读取配置文件 与PHP交互 圆饼图
2012-07-01 10:43 628FLEX文件 teacherevalute.mxml ... -
flex 界面改进
2012-07-01 10:43 650f 代码如下: Arr ... -
flex招式八:flex共享对象ShareObject
2012-07-01 10:43 773flex的共享对象ShareO ... -
Flex是咋回事之三 谁用谁知道
2012-06-30 17:07 613Flex是咋回事之三 谁用谁知道 2010年09月21日 ... -
java与flex通信
2012-06-30 17:07 598java与flex通信 2010年10月22日 一、准备 ... -
如何使用Maven 3.0, Flex Mojos 4.0和Flex 4.5构建一个简单的SWF程序
2012-06-30 17:07 1281如何使用Maven 3.0, Flex Mojos 4.0和F ... -
学习flex 初步实现与java进行数据交互
2012-06-30 17:07 635学习flex 初步实现与java进行数据交互 2010年06 ... -
Flex数据绑定陷阱(二)
2012-06-30 17:07 652Flex数据绑定陷阱(二) 2010年08月10日 尝试 ...
相关推荐
根据DataGrid中数据的某个属性设置该行数据每个单元格的字体颜色
wpf datagrid 单元格颜色 根据条件改变颜色
wpf中datagrid动态设置单元格背景颜色。
wpf datagrid 单元格颜色 根据条件改变颜色换 根据表datatable动态显示datagrid内容
某一行某一列的单元格背景或字体颜色变化,某一行某一列的单元格背景或字体颜色变化
FLEX4 s:dataGrid单元格弹出可文本,就是单击单元格弹出自己定义的一个组件,
DataGrid的单元格背景和文字颜色 DataGrid的单元格背景和文字颜色 DataGrid的单元格背景和文字颜色
Visual C++源代码 144 如何在DataGrid单元格设置输入提示Visual C++源代码 144 如何在DataGrid单元格设置输入提示Visual C++源代码 144 如何在DataGrid单元格设置输入提示Visual C++源代码 144 如何在DataGrid单元格...
Visual C++源代码 143 如何在DataGrid单元格中添加组合框Visual C++源代码 143 如何在DataGrid单元格中添加组合框Visual C++源代码 143 如何在DataGrid单元格中添加组合框Visual C++源代码 143 如何在DataGrid单元格...
flex datagrid 改变指定行的背景颜色,可直接使用
Flex DataGrid 改变某一行的背景颜色,自定义的DataGrid组件
WPF中的DataGrid合并单元格,模板列内嵌套DataGrid,非真正合并
该代码示例实现了在wpf中,单击DataGrid单元格进入编辑状态(DataGridCheckBoxColumn 单击切换选中状态)的功能。
wpf 动态合并datagrid表头单元格
WPF Datagrid 合并单元格 复杂表头 支持位置拖动、 列宽度拖动,组内列会按比例自动调整 ;
datagrid设行背景色示例,提供了继承好的datagrid子类,
Flex dataGrid 全选、反选 checkBox 不是很完善,但很有借鉴意义
datagrid合并单元格
flex的datagrid合并单元格,实现某行、某列的合并,以及多行或者多列的合并。通过MecGrid实现!
如果要改变DataGrid某一行的颜色、高度,以及某个单元格的颜色、单元格字体的颜色,就必需取到datagrid的一行和一行的单元格,通过查找相关资料及测试总结出如下实例代码,现记录下来便于大家参考使用。 1、前台WPF...