flex spark datagird 样式


如上图,是对datagrid的样式修改。包含:头部背景色及字体居中,单元格背景色设置,行字体颜色设置,复选框。基本都是基于渲染器的定义。

1)头部背景色及字体居中:

头部渲染器并没有直接的属性可用,需要自定义datagrid的皮肤。在自动生成的皮肤中,可以找到

 <!--- Defines the value of the headerRenderer property for the columnHeaderGroup.
              The default is spark.skins.spark.DefaultGridHeaderRenderer -->
        <fx:Component id="headerRenderer">
            <itemrenders:DataGridHeaderRender />
        </fx:Component>

在此处将渲染器改为自定义渲染器。自定义渲染器中主要修改两处:

1、label的字体居中属性

	<s:Label id="labelDisplay"
				 verticalCenter="1" left="0" right="0" top="0" bottom="0"
				 textAlign="center"
				 verticalAlign="middle"
				 maxDisplayedLines="1"
				 showTruncationTip="true" />

2、背景色设置

	<!-- layer 2: fill -->
	<!--- @private -->
	<s:Rect id="fill" left="0" right="0" top="0" bottom="0">
		<s:fill>
			<s:SolidColor color="0x425965" />
		</s:fill>
	</s:Rect>

2)单元格背景色设置,行字体颜色设置,复选框

该部分都是使用对应列的渲染器进行修改,三个渲染器代码如下:

单元格背景色渲染器

<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
					xmlns:s="library://ns.adobe.com/flex/spark"
					xmlns:mx="library://ns.adobe.com/flex/mx"
					clipAndEnableScrolling="true">

	<fx:Script>
		<![CDATA[
			override public function prepare(hasBeenRecycled:Boolean):void
			{
				if(data)
				{
						borderContainer.setStyle("backgroundColor",data[column.dataField]);
						borderContainer.setStyle("backgroundAlpha",1);
				}
			}
		]]>
	</fx:Script>
	<s:BorderContainer id="borderContainer" width="100%" height="100%">
	</s:BorderContainer>
</s:GridItemRenderer>

行字体颜色渲染器

<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
					xmlns:s="library://ns.adobe.com/flex/spark"
					xmlns:mx="library://ns.adobe.com/flex/mx"
					textAlign="center">
	<fx:Script>
		<![CDATA[
			override public function prepare(hasBeenRecycled:Boolean):void
			{
				if(data)
				{
					labelDisplay.text = data[column.dataField];
					labelDisplay.setStyle("color",data.lineColor);
				}
			}
		]]>
	</fx:Script>
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	<s:Label id="labelDisplay" textAlign="center" width="100%" height="100%"
			 verticalAlign="middle"/>
</s:GridItemRenderer>

复选框渲染器

<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
					xmlns:s="library://ns.adobe.com/flex/spark"
					xmlns:mx="library://ns.adobe.com/flex/mx"
					clipAndEnableScrolling="true">

	<fx:Script>
		<![CDATA[
			override public function prepare(hasBeenRecycled:Boolean):void
			{
				if(data)
				{
					if(data[column.dataField] == "0" ||data[column.dataField] == "1")
					{
						lblData.selected = stringToBoolean(data[column.dataField]);
					}
					else
					{
						lblData.selected = data[column.dataField];
					}
				}
			}

			private function stringToBoolean(string:String):Boolean
			{
				var boo:Boolean;
				if(string == "0")
				{
					boo = false;
				}
				else if(string == "1")
				{
					boo = true;
				}
				return boo;
			}

			protected function lblData_changeHandler(event:Event):void
			{
				data[column.dataField] = lblData.selected;
			}
		]]>
	</fx:Script>
	<s:Group id="group" width="100%" height="100%">
		<s:CheckBox id="lblData" horizontalCenter="0" top="4" width="40" change="lblData_changeHandler(event)"/>
	</s:Group>
</s:GridItemRenderer>

时间: 2024-11-09 23:56:29

flex spark datagird 样式的相关文章

Arcgis apis for flex项目实例—美工篇(1):样式与布局

前文已完成基本的功能,该是进入美工阶段了.我也只是一个小前端程序员,没有能力把页面做的美如画,美工的原则只有两点:一是采用大众化的页面风格,配色和谐,符合大多数用户的操作习惯:二是尽可能采用自定义控件样式,不要出现flex自带的控件样式.这一节先简要介绍一下总体的样式和布局.改变一下习惯,先美工处理过后的效果图: 从最终的结果看主要由几点改变:首先是有了主题色——绿.蓝.橙为主的组合:其次是加入了一些页面元素,页面整体变得丰满:然后是很多控件样式发生了变化,如滚动条.地图切换按钮.搜索框.工具按

原创:新手布局福音!微信小程序使用flex的一些基础样式属性

来源:新手布局福音!微信小程序使用flex的一些基础样式属性 作者:Nazi Flex布局相对于以前我们经常所用到的布局方式要好的很多,在做微信小程序的时候要既能符合微信小程序的文档开发要求,又能使用不同以往的居中方式并减少css的相关样式声明. 先来看看关于flex的一张图: 从上面可以看到一些flexbox的相关信息, main axis 和 cross axis 指的是flexbox内部flex项目(flex item)的排列方向,通俗点说就是,里面的flex项目是按照横轴或者纵轴排列的顺

[Flex] ButtonBar系列——最后一个项目的样式设置

<?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="

实现flex LinkBar 组件 动态切换ico图标

<?xml version="1.0" encoding="utf-8"?><s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"                        xmlns:s="library://ns.adobe.com/flex/spark"                        xmlns:mx="

Flex设置LinkButton的背景色

1.设计思路    由于Flex中没有设置LinkButton的背景色的属性,现在得从两个方面入手:第一,直接通过调用样式方法画出LinkButton的背景色:第二,设置LinkButton的背景图片.这里,讲述的是第一种方法     2.设计源码 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009&qu

Flex 中文字体终极解决方案

一直以来Flash对中文的支持就不是很好,很多人都发现很多汉字在Flex中无法设置粗体,就是其中一个表现,经过一晚上的折腾,终于突破了这个难题,其实,答案就在Adobe的官方教程里,只能怪自己英文水平太差,废话不表,直入正题,为了便于描述,以google的思源黑体为例: 第一步:将字体编译成swf文件 将自己需要的字体(常规和粗体一般是分开的两个字体文件)拷贝到自己的程序中,我这里是将思源黑体的NotoSansHans-Regular.otf和NotoSansHans-Bold.otf拷贝到sr

Flex中的折线图

1.问题背景 在Flex中,制作一个折线图,并且给折线图的横轴和纵轴进行样式设置,具体实现步骤如下: 2.实现实例 (1)设置横轴样式和数据绑定 <mx:horizontalAxis> <mx:CategoryAxis categoryField="quarter" displayName="季度"/> </mx:horizontalAxis> <mx:horizontalAxisRenderers> <mx:A

一个Flex 对话框的坑

最近在项目中遇到一个问题,在Flex中使用Alert.show("this is content!", "title");发现对话框可以弹出来,但是文本始终不显示.why? 由此开始了我苦逼的排查之路. 首先,可以排除没有引入包 import mx.controls.Alert;的问题.如果没有引入包的话,编译会出现错误.所以这一点可以排除掉. 但是这个工程之前就可以弹出对话框啊,为什么现在不能正常弹出呢?系统原生的对话框竟然不起作用!是不是因为文本的css设置有问

【code】flex_进度条样式

最近打算吧硬盘中的资料记录在博客中,有用的就当是个分享,没用的就当是个备份,还望大家不要见怪. 一共4个文件: JinDuTiaoItem.mxml: <?xml version="1.0" encoding="utf-8"?> <s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/fle