很多时候会用到动态改变datagrid的headerRender 或者itemRender的属性值,也会有设置单元格的颜色的要求。
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:render="com.render.*"> <fx:Declarations> <fx:XMLList id="employees"> <employee> <name>Christina Coenraets</name> <phone>555-219-2270</phone> <email>ccoenraets@fictitious.com</email> <active>true</active> <credit>101</credit> </employee> <employee> <name>Joanne Wall</name> <phone>555-219-2012</phone> <email>jwall@fictitious.com</email> <active>true</active> <credit>80</credit> </employee> <employee> <name>Maurice Smith</name> <phone>555-219-2012</phone> <email>maurice@fictitious.com</email> <active>false</active> <credit>-110</credit> </employee> <employee> <name>Mary Jones</name> <phone>555-219-2000</phone> <email>mjones@fictitious.com</email> <active>true</active> <credit>0</credit> </employee> </fx:XMLList> </fx:Declarations> <fx:Script> <![CDATA[ public var testBaseValue:int; protected function outterHandler(event:MouseEvent):void { //内部的render可以直接改变外面的值来改变属性 testBaseValue = 1; dg.dataProvider.refresh(); } protected function innerAndOutterHandler(event:MouseEvent):void { (header1.headerRenderer as ClassFactory).properties = {'baseValue':1};// 不管内部还是外部的render都可以通过此方法动态赋值 header1.headerRenderer = header1.headerRenderer; dg.dataProvider.refresh(); } ]]> </fx:Script> <s:layout> <s:VerticalLayout/> </s:layout> <s:Button label="Inner Outter Change properties" click="innerAndOutterHandler(event)"/> <s:Button label="Outter Change properties" click="outterHandler(event)"/> <mx:DataGrid id="dg" width="100%" height="100%" rowCount="5" dataProvider="{employees}"> <mx:columns> <mx:DataGridColumn dataField="name" headerText="Name" id="header1" headerRenderer="com.render.CustomHeadRender"/> <mx:DataGridColumn dataField="phone"> <mx:headerRenderer> <!--这个是内部render--> <fx:Component> <render:CustomHeadRender> <fx:Script> <![CDATA[ override public function validateProperties():void { super.validateProperties(); //用outerDocument来访问外部的属性和方法 if(outerDocument.testBaseValue == 1) { this.text = "CustomHeader2"; } else { this.text = "DefaultHeader2"; } } ]]> </fx:Script> </render:CustomHeadRender> </fx:Component> </mx:headerRenderer> </mx:DataGridColumn> <mx:DataGridColumn dataField="credit" headerText="Credit" itemRenderer="com.render.CustomItemRender"/> </mx:columns> </mx:DataGrid> </s:Application>
CustomHeadRender.as
package com.render { import mx.controls.dataGridClasses.DataGridItemRenderer; /*这个是外部render*/ public class CustomHeadRender extends DataGridItemRenderer { private var _baseValue:int; public function set baseValue(value:int):void { _baseValue = value; } public function get baseValue():int { return this._baseValue; } override public function validateProperties():void { super.validateProperties(); if(baseValue == 1) { this.text = "CustomHeader1"; } else { this.text = "DefaultHeader1"; } } } }
CustomItemRender.mxml
<?xml version="1.0" encoding="utf-8"?> <s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" focusEnabled="true" autoDrawBackground="{autoDrawBackGroup}" alternatingItemColors="{color}"> <fx:Script> <![CDATA[ // 更改单元格背景色和字体颜色 import mx.controls.listClasses.BaseListData; [Bindable]private var color:uint; [Bindable]private var autoDrawBackGroup:Boolean; override public function set listData(value:BaseListData):void { super.listData = value; if(!isNaN(Number(listData.label))) { if(Number(listData.label) > 100) { color = 0xff0000; } else if(Number(listData.label) > 0) { color = 0x00ff00; } else { color = 0xffffff; } autoDrawBackGroup = color != 0xffffff; } } ]]> </fx:Script> <s:Label id="lblData" top="0" left="0" right="0" bottom="0" text="{dataGridListData.label}" color="{0xffffff - color}"/> </s:MXDataGridItemRenderer>
相关推荐
例如,我们可以创建一个自定义的附加属性,然后在单元格的后台代码中根据这个属性改变颜色。 在提供的压缩包文件"DatagridCellColor"中,很可能包含了示例代码,演示了如何实现上述的一些方法。通过学习和理解这些...
本文将深入探讨如何在Flex中自定义Datagrid的ItemRender,以实现按钮、单选、复选和日期等控件的集成。 首先,我们需要了解ItemRender的基本概念。ItemRenderer是Flex提供的一种机制,允许开发者为数据网格中的每一...
本知识点将详细讲解如何根据DataGrid中的数据属性来动态改变单元格的字体颜色,以增强视觉效果并突出关键信息。 首先,我们需要了解Flex中的DataGrid工作原理。DataGrid是基于MX组件集的一部分,它通过绑定到数据...
本主题将深入探讨如何根据DataTable中的数据动态显示DataGrid的内容,并且根据特定条件改变单元格的颜色。 首先,我们需要了解DataGrid的基本用法。DataGrid控件允许我们将数据绑定到各种数据源,如...
当我们需要根据数据的某些条件动态改变`DataGrid`中单元格的背景颜色时,就需要对控件进行一些定制化操作。以下将详细讲解如何实现这个功能。 首先,我们需要理解`DataGrid`的基本结构。`DataGrid`的每一行由多个`...
这可以通过监听`data`属性的变化来实现,如在上面的`CustomRowRenderer`中,当`data`属性改变时,会重新计算背景颜色。 5. **优化性能** 当DataGrid包含大量数据时,频繁改变ItemRenderer的颜色可能会对性能造成...
如果需要动态改变颜色,可能需要监听某些事件,如`LoadingRow`事件,当行加载时进行相应的颜色设定。 通过以上步骤,你可以在C#中实现改变DataGrid的行和单元格颜色。这不仅涉及到了DataGrid控件的基本用法,也...
总结,改变Flex DataGrid中某一行的背景颜色通常涉及自定义ItemRenderer、使用CSS样式或者监听事件。选择哪种方法取决于具体需求,如是否需要复杂逻辑、性能要求以及代码可维护性等因素。通过这些技术,我们可以使...
在Flex开发中,数据网格(DataGrid)是用于展示大量结构化数据的常用组件。它允许用户以表格的形式查看和操作数据。当我们处理的数据需要进行分类或者分组时,Flex DataGrid 提供了表头分组的功能,这使得数据的展示...
Flex DataGrid是一款强大的数据展示组件,常用于Adobe Flex或Flash Builder等开发环境中。它能够高效地展示大量数据,并提供丰富的用户交互功能。在本场景中,我们关注的是“前台分页”这一技术。 前台分页是指在...
Flex Datagrid 是Adobe Flex框架中用于展示数据集的组件,它允许开发者以表格形式展示数据,并提供多种交互功能。在Flex应用中,Datagrid经常被用于处理和展示大量的结构化数据。在标题“Flex Datagrid checkbox实现...
在这个实例中,我们将探讨如何利用Flex的`DataGrid`组件结合XML文件来实现动态数据列表。 首先,让我们深入了解`DataGrid`组件。`DataGrid`是Flex提供的一个可自定义的、可滚动的数据容器,它允许用户以网格形式...
在Flex开发中,数据网格(DataGrid)是用于展示数据集合的强大组件,它允许用户以表格形式查看和操作数据。本示例关注的是在DataGrid中嵌套复选框(Checkbox),并实现全选功能。这在需要用户批量选择或操作数据的...
在Flex编程中,DataGrid组件是用于展示结构化数据的强大工具。它允许用户对数据进行排序、筛选和编辑。在实际应用中,我们经常需要实现全选和反选功能,以便用户可以一次性选择或取消选择所有条目。本文将详细讨论...
本篇文章将深入探讨“flex datagrid分页动态绑定数据源”的相关知识点。 首先,让我们理解Flex Datagrid的基本概念。Flex Datagrid是一个灵活的数据呈现控件,能够处理各种数据源,包括ArrayCollection、...
- **设置样式**:如果需要,你可以设置单元格的样式,比如字体、颜色、边框等,以匹配Flex DataGrid的外观。 - **保存文件**:最后,将工作簿写入到磁盘上,生成一个Excel文件。 5. **返回响应**: Java服务端...
下面将详细介绍如何在Flex中实现Datagrid动态改变行颜色。 首先,我们需要了解Flex中的Datagrid组件。Datagrid是MX组件库中的一个控件,它允许我们显示二维的数据集合,并支持排序、分页和选择功能。默认情况下,...
在给定的标题“FLEX4 s:dataGrid单元格弹出可文本”中,我们关注的是如何实现点击`DataGrid`的单元格后弹出一个自定义组件,展示更多或更详细的信息。 在Flex4中,我们可以利用事件监听和自定义组件来实现这一功能...
Flex DataGrid 是 Adobe Flex 中一个重要的组件,用于展示结构化数据。它以表格形式呈现,非常适合用来显示多列数据,并提供了排序、选择、编辑等多种功能。在这个教程中,我们将深入探讨 DataGrid 的基本使用和一些...
1. **样式修改**:使用CSS或MXML中的StyleName属性改变DataGrid的整体样式,或者通过CSS类来改变特定列的样式。 2. **数据绑定**:通过Binding表达式将数据模型绑定到DataGrid,实现数据的动态更新。 3. **列定制*...