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

关于Flex的DataGrid的应用拓展(一)

    博客分类:
  • flex
阅读更多
        Flex的DataGrid是Flex软件开发过程中最重要的组件之一,但这个组件确实让大家既爱又恨。这个组件的代码非常多,要是连继承类算起来,总么也要上万行代码。因此,分享一些在工作中的一些小用途希望大家能喜欢。首先介绍一下如何设置header的的rollover颜色。在DataGrid中不能单独设置header的rollover颜色,只能设置一个和数据统一的rollover颜色。步骤如下:

    (1)创建一个DataGrid继承类:
package
{
	import mx.controls.DataGrid;
	import mx.core.mx_internal;

	use namespace mx_internal;
	/**
	 *  The color of the header background when the user rolls over the row.
	 *  
	 *  The default value for the Halo theme is <code>0xB2E1FF</code>.
	 *  The default value for the Spark theme is <code>0xCEDBEF</code>.
	 *  
	 *  @langversion 3.0
	 *  @playerversion Flash 9
	 *  @playerversion AIR 1.1
	 *  @productversion Flex 3
	 */
	[Style(name="headerRollOverColor", type="uint", format="Color", inherit="yes")]
  	
	public class headerDatagrid extends DataGrid
	{
		public function headerDatagrid()
		{
			super();
			headerClass=customDataGridHeader;
		}
	
	}
}


注:这个继承类干了两件事情。1)指定一个样式 ;2)指定一个Header实现类用于覆盖原来的Header,下一步会介绍。



2)继承DatagridHeader实现对Header rollOver的指定:
package
{
	import flash.display.Graphics;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	
	import mx.controls.dataGridClasses.DataGridColumn;
	import mx.controls.dataGridClasses.DataGridHeader;
	import mx.controls.listClasses.IListItemRenderer;
	 
	public class customDataGridHeader extends DataGridHeader
	{
		
		public function customDataGridHeader()
		{
			super();
		}
		
		 /**
		 * override current style drawing,perpose: create new style for  header's rollover.
		 */ 
		override protected function drawHeaderIndicator(indicator:Sprite, x:Number, y:Number, width:Number, height:Number, color:uint, itemRenderer:IListItemRenderer):void
		{
			var g:Graphics = indicator.graphics;
			g.clear();
			if(color==getStyle("rollOverColor")&&getStyle("headerRollOverColor")){
			  color=getStyle("headerRollOverColor");
			}
			g.beginFill(color);
			g.drawRect(0, 0, width, height);
			g.endFill(); 
			indicator.x = x;
			indicator.y = y;
		}
	}
}



3)调用这个实现了header rollover 的实现类:
<?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:local="*">
	<s:layout>
		<s:BasicLayout/>
	</s:layout>
	<fx:Declarations>
	</fx:Declarations>
	<fx:Style>
		@namespace s "library://ns.adobe.com/flex/spark";
		@namespace mx "library://ns.adobe.com/flex/mx";
		@namespace local "*";
		 mx|DataGrid{
			 headerRollOverColor:#ff0000;
		 }
		
		
	</fx:Style>
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			
			[Bindable] 
			public var collection:ArrayCollection = new ArrayCollection([ 
				{ "name1" : "上海", "selected":false},  
				{ "name1":"黄浦", "selected":false }, 
				{ "name1":"浦东", "selected":true }, 
				{ "name1":"静安", "selected":false }, 
				{ "name1":"徐汇", "selected":false }, 
				{ "name1":"北京", "selected":false},
				{ "name1":"海淀", "selected":false }, 
				{ "name1":"朝阳", "selected":true }, 
				{ "name1":"丰台", "selected":false } ]); 
		]]>
	</fx:Script>
	<local:headerDatagrid  width="300" id="datagrid" dataProvider="{collection}" >
		<local:columns>
			<mx:DataGridColumn headerText="地区" dataField="name1"  itemRenderer="datagridItemrender" >
			</mx:DataGridColumn>
			<mx:DataGridColumn headerText="选择" dataField="selected">
			</mx:DataGridColumn>
		</local:columns>
		
	</local:headerDatagrid>
</s:Application>


注:这几个类别的应用都在Flex4.1中运行过,效果不错。另外,如果想知道为什么这样,那就多去读源码吧。这里不再熬述。


           

            

  
分享到:
评论
2 楼 fu80008 2011-10-20  
flex的namespace
1 楼 zyx870805 2011-10-08  
xmlns:local="*"
请问这句话代表什么意思?

相关推荐

    flex datagrid 前台 分页

    Flex DataGrid是一款强大的数据展示组件,常用于Adobe Flex或Flash Builder等开发环境中。它能够高效地展示大量数据,并提供丰富的用户交互功能。在本场景中,我们关注的是“前台分页”这一技术。 前台分页是指在...

    FLEX datagrid应用实例

    DataGrid是Flex中的一个核心组件,它允许开发者以表格的形式展示数据,适用于数据密集型的应用场景。 一、Flex DataGrid简介 Flex DataGrid组件是一个可滚动的表格,用于显示大量的结构化数据。它提供了诸如排序、...

    Flex Datagrid checkbox实现

    在Flex应用中,Datagrid经常被用于处理和展示大量的结构化数据。在标题“Flex Datagrid checkbox实现”中,讨论的核心是Datagrid中集成复选框(checkbox)的功能。 在Flex Datagrid中实现复选框功能,主要是通过...

    flex DataGrid 表头分组

    在提供的文档《Flex_AdvancedDataGrid的使用.doc》中,可能包含了更多关于如何使用和配置`AdvancedDataGrid`以实现表头分组的详细信息,包括示例代码和最佳实践。建议详细阅读文档以深入理解和应用这个功能。 总的...

    Flex dataGrid 全选、反选

    本文将详细讨论如何在Flex DataGrid中实现全选和反选功能,并结合`checkBox`来优化这一过程。 首先,我们要理解DataGrid的结构。DataGrid由多个列组成,每一列可能包含不同类型的控件,如文本、图像或复选框。在...

    Flex DataGrid 改变某一行的背景颜色

    在Flex中,可以为DataGrid定义一个CSS类,然后在需要改变背景色的行上应用这个类。例如: ```css .myCustomRow { background-color: #FF0000; } ``` 然后在数据源中为特定行添加这个类名,或者在代码中动态设置:...

    flex datagrid 嵌套checkbox实现全选

    Flex DataGrid是Adobe Flex框架中的一个组件,用于显示结构化的数据集。它可以自动生成列,并根据数据源动态调整大小。DataGrid支持排序、分页、筛选等功能,是UI设计中处理大量数据的首选组件。 2. **嵌套复选框...

    Flex DataGrid CheckBox 一个简单的全选

    在Flex开发中,DataGrid组件是一个非常常用的控件,它用于展示数据集合,并提供交互式操作,如排序、选择等。本示例聚焦于DataGrid中的CheckBox集成,特别是实现一个全选的功能。以下是对这个主题的详细解释: 一、...

    flex datagrid

    Flex DataGrid是一个强大的数据展示组件,它在Adobe Flex框架中被广泛使用,用于显示和操作大量结构化的数据。这个组件提供了灵活的布局选项,可定制的列格式化,以及丰富的用户交互功能,如排序、筛选和编辑。...

    FLEX的datagrid合计、平均值

    在Flex开发中,Datagrid组件是用于展示数据集的一个强大工具,它允许用户以表格的形式查看和操作数据。本文将深入探讨如何在Flex的Datagrid中实现数据的合计与平均值计算,帮助开发者更好地理解和应用这些功能。 ...

    将Flex DataGrid数据导出到Excel中

    在开发基于Adobe Flex的应用程序时,我们经常遇到需要将数据展示在用户友好的方式中,例如使用DataGrid组件。然而,有时用户希望将这些数据显示在更传统的格式中,如Microsoft Excel电子表格。本教程将详细介绍如何...

    flex DataGrid xml 动态数据列表实例

    `DataGrid`组件是Flex提供的一种强大的工具,用于显示表格形式的数据。在这个实例中,我们将探讨如何利用Flex的`DataGrid`组件结合XML文件来实现动态数据列表。 首先,让我们深入了解`DataGrid`组件。`DataGrid`是...

    flex datagrid 表格 合计

    Flex DataGrid 是 Adobe Flex 框架中的一个组件,它用于在应用程序中显示表格数据。在Flex中,实现数据网格的总计功能是一项常见的需求,它能够帮助用户快速地理解和分析大量数据。本项目提供了一个已经实现了总计...

    flex datagrid 实现合计功能控件包

    flex datagrid 实现合计功能控件包 带源码,demo fxp是flex4的工程文件,导入到工作空间即可 直接导入项目即可。 更多访问我的blog www.dplayer.net

    flex DataGrid改变指定行的背景颜色

    ItemRenderer是一个Flex组件,它负责渲染DataGrid中的每一行。在自定义ItemRenderer中,我们可以根据数据源中的属性值来设置背景颜色。以下是一个简单的自定义ItemRenderer示例: ```actionscript public class ...

    Flex DataGrid 分页

    Flex DataGrid 分页是Adobe Flex开发中一个关键的用户界面组件功能,用于处理大量数据时提高性能和用户体验。在Web应用程序中,一次性加载所有数据可能导致页面加载缓慢,消耗大量内存,而分页则能有效地解决这个...

    flex datagrid 分页控件源码

    Flex DataGrid是一款基于Adobe Flex技术的数据展示控件,它允许开发者在Web应用中展示大量数据并进行高效管理。在描述中提到的“flex datagrid pagination”是指DataGrid控件的一个重要特性——分页功能。在处理大...

    flex Datagrid checkbox全选

    在Flex开发中,Datagrid是一种常用的组件,用于展示表格数据,而checkbox全选功能则是提高用户体验的一个重要特性。本文将详细讲解如何实现Flex Datagrid中checkbox的全选功能。 首先,我们要了解Flex Datagrid的...

Global site tag (gtag.js) - Google Analytics