Flex Datagrid如何改变单行字体的颜色 5
用FlexdDatagrid的时候遇到一点问题,不知道如何改变某一行的字体颜色,百度很久也未果,是字体颜色不是背景颜色,希望有什么比较简便的重写Datagrid的解决方案...
用Flexd Datagrid的时候遇到一点问题,不知道如何改变某一行的字体颜色,百度很久也未果,是字体颜色不是背景颜色,希望有什么比较简便的重写Datagrid 的解决方案。现在用的是mx包的Datagrid
展开
2个回答
展开全部
代码如下,新建一个as文件,粘贴进去,再调用一下rowColorFunction属性就行:
package UIControl
{
import mx.controls.DataGrid;
import mx.controls.*;
import flash.display.Shape;
import mx.core.FlexShape;
import flash.display.Graphics;
import flash.display.Sprite;
import mx.rpc.events.AbstractEvent;
import mx.collections.ArrayCollection;
import flash.events.Event;
public class RowDataGrid extends DataGrid
{
private var _rowColorFunction:Function;
public function RowDataGrid()
{
super();
}
public function set rowColorFunction(f:Function):void
{
this._rowColorFunction = f;
}
public function get rowColorFunction():Function
{
return this._rowColorFunction;
}
override protected function drawRowBackground(s:Sprite,rowIndex:int,y:Number, height:Number, color:uint, dataIndex:int):void
{
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);
}
}
}
package UIControl
{
import mx.controls.DataGrid;
import mx.controls.*;
import flash.display.Shape;
import mx.core.FlexShape;
import flash.display.Graphics;
import flash.display.Sprite;
import mx.rpc.events.AbstractEvent;
import mx.collections.ArrayCollection;
import flash.events.Event;
public class RowDataGrid extends DataGrid
{
private var _rowColorFunction:Function;
public function RowDataGrid()
{
super();
}
public function set rowColorFunction(f:Function):void
{
this._rowColorFunction = f;
}
public function get rowColorFunction():Function
{
return this._rowColorFunction;
}
override protected function drawRowBackground(s:Sprite,rowIndex:int,y:Number, height:Number, color:uint, dataIndex:int):void
{
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);
}
}
}
展开全部
可以重写datagrid列渲染器,在渲染器里处理赋值时根据某一字段的值来变颜色。这是常用方法。
更多追问追答
追问
能详细点么。itemRender么
追答
对,新写itemRender。见 http://zhidao.baidu.com/question/584437773.html?#replyask-1465281202 我的回答。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询