1,新建类(重写DataGrid)
package myas.control
{
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);
}
}
}
2,调用,
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:control="myas.control.*">
<mx:Script>
<![CDATA[
private function setCustomColor(item:Object, color:uint):uint
{
if( item['c3'] == "r6.c3" )// c3="r6.c3",c4="r7.c4"
{
return 0xFF0033;
}
return color;
}
private var i:uint=179845;
]]>
</mx:Script>
<control:RowDataGrid dataProvider="{arrColl}" rowColorFunction="setCustomColor">
<control:columns>
<mx:DataGridColumn dataField="c1"
headerText="Column 1" />
<mx:DataGridColumn dataField="c2"
headerText="Column 2" />
<mx:DataGridColumn dataField="c3"
headerText="Column 3" />
<mx:DataGridColumn dataField="c4"
headerText="Column 4" />
</control:columns>
</control:RowDataGrid>
<mx:ArrayCollection id="arrColl">
<mx:source>
<mx:Array>
<mx:Object c1="r1.c1" c2="r1.c2" c3="r1.c3" c4="r1.c4"/>
<mx:Object c1="r2.c1" c2="r2.c2" c3="r2.c3" c4="r2.c4"/>
<mx:Object c1="r3.c1" c2="r3.c2" c3="r3.c3" c4="r3.c4"/>
<mx:Object c1="r4.c1" c2="r4.c2" c3="r4.c3" c4="r4.c4"/>
<mx:Object c1="r5.c1" c2="r5.c2" c3="r5.c3" c4="r5.c4"/>
<mx:Object c1="r6.c1" c2="r6.c2" c3="r6.c3" c4="r6.c4"/>
<mx:Object c1="r7.c1" c2="r7.c2" c3="r7.c3" c4="r7.c4"/>
<mx:Object c1="r8.c1" c2="r8.c2" c3="r8.c3" c4="r8.c4"/>
<mx:Object c1="r9.c1" c2="r9.c2" c3="r9.c3" c4="r9.c4"/>
</mx:Array>
</mx:source>
</mx:ArrayCollection>
</mx:Application>
分享到:
相关推荐
ItemRenderer是一个Flex组件,它负责渲染DataGrid中的每一行。在自定义ItemRenderer中,我们可以根据数据源中的属性值来设置背景颜色。以下是一个简单的自定义ItemRenderer示例: ```actionscript public class ...
本文将深入探讨如何在Flex中实现对datagrid行背景色的自定义。 首先,了解Flex Datagrid的基本结构是关键。Datagrid由一系列的DataGridItems组成,每一项对应于数据源中的一个记录。为了改变行的背景色,我们需要...
在本示例中,我们关注的是如何设置 `Datagrid` 的行背景色,以增强视觉效果,帮助用户更好地理解和区分不同的数据。 首先,让我们了解 `Datagrid` 的基本概念。`Datagrid` 是一个控件,通常由多个行和列组成,每一...
在Flex中,可以为DataGrid定义一个CSS类,然后在需要改变背景色的行上应用这个类。例如: ```css .myCustomRow { background-color: #FF0000; } ``` 然后在数据源中为特定行添加这个类名,或者在代码中动态设置:...
我们需要确保数据源包含了表示行状态的额外属性,例如,可以添加一个名为`rowColor`的字段,用来指示每行应该显示的颜色。 ```actionscript var dataProvider:ArrayCollection = new ArrayCollection([ {name: ...
在Flex开发中,我们经常需要对数据展示进行定制化,比如根据每行数据的不同来设置不同的背景色。这种需求在数据网格(DataGrid)中尤为常见,可以增强数据的可读性和视觉效果。本篇文章将深入讲解如何在Flex中实现这...
你可以为整个DataGrid设置背景色,也可以为特定行或列设置不同的颜色,以达到视觉效果或强调特定数据的目的。 5. **Flash集成**: 虽然Flex和Flash在某些方面有交集,但它们在技术上是独立的。在描述中提到的"flash ...
在本篇文章中,我们将探讨如何在Flash中对DataGrid组件进行自定义,使其显示交替的行背景颜色(即一行白色,一行灰色)。这种方法类似于Flex框架中的DataGrid样式,并且能够提高用户界面的可读性和美观度。下面将...
首先需要了解的是,Flex原生的DataGrid控件并没有提供直接的方式来改变单个行的背景色。因此,需要通过自定义DataGrid类来扩展原有的功能。自定义类通常需要重写一些特定的方法来实现特定的功能,比如本例中的改变行...
在DataGrid中,每一行对应数据源的一个记录,每一列则对应记录的一个字段。开发者可以通过设置DataGrid的columns属性来定义列的显示样式和行为。 AutoCompleteDataGrid则是在DataGrid的基础上增加了一个自动补全...
这样,特定行就会显示不同的背景色,从而实现高亮显示效果。 需要注意的是,虽然这种方法能够实现高亮显示数据的功能,但对原有的DataGrid组件进行改写和扩展可能会使代码变得更加复杂,维护起来可能也会更加困难。...
使用DefaultCellStyle、HeaderStyle、AlternatingRowStyle等属性可以调整单元格的字体、颜色、背景色等。 7. **事件处理** DataGrid控件有丰富的事件,如CellClick、CellFormatting、RowValidating等,开发者可以...
弹出框(PopUp)可以是Alert、ModalDialog或其他自定义组件,通过调整其边框、背景色、字体样式等属性,可以实现独特的用户体验。 “日期选择器效果”这部分可能包含了一个自定义的DateChooser组件,它扩展了Flex 3...
2. Colorpicker:Colorpicker 控件允许用户选择颜色,常用于颜色配置或设置背景色等场景。 3. Combobox:Combobox 是一个组合了下拉列表的文本输入框,用户可以选择列表中的选项或者自定义输入。 4. Datagrid:...
例如,如果你试图改变列表中第五行的第四列背景色,你需要注意,一旦用户滚动列表,这个渲染器可能会被用来显示其他数据,因为它会被复用。因此,正确的做法是让渲染器根据所显示的数据动态地改变其自身状态。 内联...
在实际应用中,我们经常需要根据数据的不同状态或属性来改变单元格的背景色或字体色,以增强视觉效果和信息的可读性。 实现Flex DataGrid每个单元格颜色不同的方法主要有两种:一是通过使用ItemRenderer,二是通过...
例如,可以通过修改CSS类或使用states来改变数据项在选中或未选中时的背景色。 对于**柱形数据变化**,Flex的Charts组件提供了一种直观的方式来展示数据。我们可以通过改变ArrayCollection中的数据来动态更新柱形图...
这种方法大幅提高了应用的性能,但同时也带来了挑战,尤其是在需要根据数据动态更改UI元素时,比如更改特定单元格的背景色。 针对动态更改UI元素的需求,itemRenderer需要具备根据数据自动更新其内容和样式的功能。...
开发者可以通过创建 CSS 样式或使用 MXML 来定义按钮的外观,包括不同状态(如正常、鼠标悬停、按下)下的背景色、边框、文字样式等。同时,可以利用 Flex 的动画库,如 TweenLite 或 AnimateCC,为按钮添加过渡效果...