`
lorry1113
  • 浏览: 265925 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

动态改变DataGird行的颜色

    博客分类:
  • flex
阅读更多
MXML实现如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:DataGrid xmlns:mx="http://www.adobe.com/2006/mxml">
	  <mx:Script>
	    <![CDATA[
	    	import mx.controls.Alert;
	      override protected function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void
	      {
		      if(dataProvider!="" && dataIndex < dataProvider.length){
		      		if(dataProvider[dataIndex].objectid != "0"){
		      			color = 0xFF6600
		      		}
		      }
	        super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);
	      }
	    ]]>
	  </mx:Script>

	  <mx:columns>
		<mx:DataGridColumn headerText="线路ID" dataField="id" textAlign="left"/>
		<mx:DataGridColumn headerText="线路名称" dataField="name" textAlign="left"/>
	  </mx:columns>
</mx:DataGrid>

在需要加入的页面:
<comp:DataGrid id="dg" dataProvider="{comboData}" horizontalGridLines="true" width="100%" click="queryLineInfo(event)" height="65%" right="0"/>


as3 CLASS实现如下:
package
{
	import flash.display.Sprite;
	
	import mx.collections.ArrayCollection;
	import mx.controls.DataGrid;

	public class RowColorDataGrid extends DataGrid
	{
	//用于设置颜色,参数: 当前item, rowIndex, dataIndex, 当前color
		public var rowColorFunction:Function;
		
		//覆写drawRowBackground,目的是根据rowColorFunction返回颜色设置当前行
		override protected function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number,
										color:uint, dataIndex:int):void
		{
			if(rowColorFunction != null)
			{
				//从dataProvider中获取当前item
				var item:Object;
				if(dataIndex &lt; dataProvider.length)
				{
					item = dataProvider[dataIndex];
				}
				if(item)
				{ //如果当前item存在,从rowColorFunction中获取行的颜色
					color = rowColorFunction(item, rowIndex, dataIndex, color);
				}
				}
				//调用父类方法设置当前行颜色
				super.drawRowBackground(s, rowIndex, y, height, color, dataIndex);
			}
		}
	}
}
分享到:
评论

相关推荐

    C#实现改变DataGrid某一行和单元格颜色的方法

    如果需要动态改变颜色,可能需要监听某些事件,如`LoadingRow`事件,当行加载时进行相应的颜色设定。 通过以上步骤,你可以在C#中实现改变DataGrid的行和单元格颜色。这不仅涉及到了DataGrid控件的基本用法,也...

    wpf datagrid 单元格颜色 根据条件改变颜色 例子

    - 另外,还可以通过监听DataGrid的相关事件(如CellEditEnding、CellsChanged等)并在事件处理程序中动态修改单元格的样式。但这通常不推荐,因为它可能导致性能问题,尤其是在大数据量时。 5. 使用附加属性: - ...

    EasyUI学习之DataGird分页显示数据

    `pagination`设置为`true`启用分页功能,`rownumbers`表示每行显示行号,`sortName`和`sortOrder`定义默认的排序字段和顺序。`pageSize`设置了每页显示的记录数,这里是20条。`remoteSort`设置为`false`表示排序在...

    WPF DataGrid合并行

    7. **处理程序事件**:可能需要监听DataGrid的Loaded或DataGrid.ItemsSourceChanged事件,以便在数据加载后或数据更改时动态调整行的合并状态。 8. **自定义DataGrid类**:如果你需要更高级的控制,可以考虑扩展...

    Datagird增改删例子

    "Datagird增改删例子"这个项目旨在演示如何在C#环境下利用DataGridView实现数据的添加(Add)、修改(Edit)和删除(Delete)操作。在.NET环境中,我们可以结合数据库和ADO.NET技术来完成这些功能。 首先,`dgdemo_...

    jQuery easyui datagird编辑行删除行功能的实现代码

    3. `striped`: 是否开启斑马线效果,使得表格行交替显示不同颜色,提高视觉效果。 4. `singleSelect`: 是否允许单选,如果为`false`,则允许多选。 5. `pagination`: 是否启用分页,如果为`false`,则不显示分页条。...

    可用的datagird打印类

    可用的datagird打印类。记住datagird要添加样式,调用列子如下: DataGridPrintDocument dgp=new DataGridPrintDocument(dataGrid1,"用户列表",16); //string[] uplinestr={"呵呵,hehe","xixi"}; ...

    [DataGird]如何截取过长的字符串

    ### 数据网格(DataGrid)中如何处理过长的字符串 在数据展示应用中,尤其是在使用`DataGrid`组件时,我们经常会遇到这样的问题:当单元格中的文本长度超过了列的宽度时,显示效果会受到影响,例如文本被截断或换行等...

    jQuery EasyUI中DataGird动态生成列的方法

    EasyUI中使用DataGird显示数据列表中,有时需要根据需要显示不同的列,例如,在权限管理中,不同的用户登录后只能查看自己权限范围内的列表字段,这就需要DataGird动态组合列,下面介绍EasyUI中DataGird动态生成列的...

    Wpf DataGird示例代码

    通过使用`DataTrigger`和`Binding`,可以根据数据的值动态改变样式。例如,可以设置异常值的背景色,或者为选中行提供高亮效果。此外,`DataGrid`还支持模板列,允许嵌入复杂的UI元素,如按钮或图像。 在`...

    easyui datagird增删改分页例子

    标题 "easyui datagird增删改分页例子" 提示我们这个压缩包包含一个使用EasyUI DataGrid实现数据操作和分页功能的示例。EasyUI是一个基于jQuery的前端框架,DataGrid是其组件之一,常用于展示表格数据并支持用户交互...

    动态datagrid xml动态datagrid xml动态datagrid xml动态datagrid xml

    动态DataGrid是编程领域中一个常见的话题,尤其是在Web开发中,它允许用户在运行时根据数据源自动生成列和行,极大地增强了用户界面的灵活性。本文将深入探讨动态DataGrid与XML之间的结合,以及如何利用XML数据源来...

    flex通过httpService读取xml数据到datagird中

    flex通过httpService读取xml数据到datagird中,通过读取远程URL的XML数据(这里保存到本地),保存到ArrayCollection中,然后在将ArrayCollection绑定到datagird上 环境:flex3.0 可直接运行

    Flex DataGird Add RadioButton

    而要实现DataGrid中的每一行都有一个单选按钮,这通常是为了实现用户只能选择一行数据的操作。这样的功能在数据筛选、编辑或操作中非常常见。 以下是一个详细的步骤来解释如何在Flex DataGrid中添加RadioButton: ...

    c#.net Data导出DataGird 源码

    以下是对“c#.net Data导出DataGird源码”的详细分析。 ### 知识点一:C# .NET环境下数据导出至Excel的基本流程 #### 1. 设置HTTP响应头 在导出数据至Excel文件前,首先需设置HTTP响应头,以便浏览器能够识别该...

    让datagird支持鼠标滚轮

    然后,代码会根据这个消息处理数据的滚动,可能通过改变Datagrid的当前行或页来实现。 `列表.frm`文件则可能是一个表单文件,它定义了用户界面的布局,包括Datagrid控件的位置和大小。在这个表单中,Datagrid控件被...

    datagird绑定

    一旦设置了`DataSource`,DataGrid就会根据数据源中的数据自动生成相应的行和列。此外,还需要调用`DataBind()`方法来完成数据的实际绑定过程。 #### 三、示例代码解析 在给定的部分内容中,作者展示了如何在.NET...

    DataGrid当鼠标划过每行时,在ToolTip中显示每行数据的详情

    4. **样式调整**:为了优化用户体验,可能还需要自定义ToolTip的样式,如颜色、字体、背景等。这可以通过创建一个新样式并将其应用于ToolTip来实现。 通过以上步骤,你就能在DataGrid中实现当鼠标划过每行时显示...

    FLEX中DATAgird的学习

    首先,`DataGrid` 的编辑功能允许用户直接在表格中修改数据。当用户点击单元格进入编辑模式时,可以结合使用不同的组件,如 `RadioButtonGroup`、`CheckBox` 或 `ComboBox`。要实现这一功能,需要设置 `...

Global site tag (gtag.js) - Google Analytics