`
demojava
  • 浏览: 540806 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

flex DataGrid 行列颜色设置

阅读更多

群里一哥们问了个问题,就写了个这个demo

DataGrid 行列背景颜色设置

效果图:



 相关代码:

原理重写DataGrid  drawRowBackground 方法。

<?xml version="1.0" encoding="utf-8"?>
<mx:DataGrid xmlns:fx="http://ns.adobe.com/mxml/2009" 
			xmlns:s="library://ns.adobe.com/flex/spark" 
			xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			import mx.containers.Form;
			import mx.controls.Alert;
			import mx.controls.dataGridClasses.DataGridColumn;
			override protected function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void
			{
				var list:XMLList = new XMLList(dataProvider);
				if(rowIndex<list.length())
				{
						var item:XML=list[rowIndex];
						super.drawRowBackground(s,rowIndex,y,20,item.child("color"),dataIndex);
				}
			}
			
			override protected function drawColumnBackground(s:Sprite, columnIndex:int, color:uint, column:DataGridColumn):void
			{
					var columnShape:Shape = Shape(s.getChildByName("lines"+columnIndex.toString()));
					if( columnShape == null ) {
						columnShape = new Shape();
						columnShape.name = "lines"+columnIndex;
						s.addChild(columnShape);
					} 
					super.drawColumnBackground(s,columnIndex,color,column);
			}
			
		]]>
	</fx:Script>
</mx:DataGrid>

 

  • 大小: 79.5 KB
分享到:
评论
10 楼 zhouhuaming 2015-01-19  
楼主,小弟新手,求完整demo,
javaxiaozhou@163.com


thanks!
9 楼 blueairabc 2014-12-21  
求demo 啊 blueairabc@163.com
8 楼 cook_diy 2014-12-05  
求大神demo啊
小弟在此先谢过了
10987457@qq.com
7 楼 xtxycy 2013-02-20  
楼主真是高人啊,楼主能把DEMO发给我一份吗?402247084@qq.com,谢谢啦
6 楼 demojava 2012-12-24  
tuposky 写道
demojava 写道
tuposky 写道
楼主怎么把ColorPicker 放到datagrid里面的啊。

我放button,img 等控件都可以,就是这个ColorPicker 没效果。

<mx:DataGridColumn headerText="columnColor" >
<mx:itemRenderer> 
<fx:Component>  <s:MXDataGridItemRenderer> 
<mx:ColorPicker id="colord" selectedColor="{data.columnColor}" top="0" left="0"/>
</s:MXDataGridItemRenderer> 
</fx:Component> 
</mx:itemRenderer> 
</mx:DataGridColumn>

我这样写也不可以。。添加其他的控件都可以,就是这个colorpicker 没效果,郁闷。
我用的flex2.0.1 的sdk 不知道与这个有没有关系。
悲剧的是我只能用这个版本的sdk。 

。。。。那没办法。。。。。都4。6sdk了你还2.0.1
5 楼 tuposky 2012-12-24  
demojava 写道
tuposky 写道
楼主怎么把ColorPicker 放到datagrid里面的啊。

我放button,img 等控件都可以,就是这个ColorPicker 没效果。

<mx:DataGridColumn headerText="columnColor" >
<mx:itemRenderer> 
<fx:Component>  <s:MXDataGridItemRenderer> 
<mx:ColorPicker id="colord" selectedColor="{data.columnColor}" top="0" left="0"/>
</s:MXDataGridItemRenderer> 
</fx:Component> 
</mx:itemRenderer> 
</mx:DataGridColumn>

我这样写也不可以。。添加其他的控件都可以,就是这个colorpicker 没效果,郁闷。
我用的flex2.0.1 的sdk 不知道与这个有没有关系。
悲剧的是我只能用这个版本的sdk。 
4 楼 demojava 2012-12-24  
tuposky 写道
楼主怎么把ColorPicker 放到datagrid里面的啊。

我放button,img 等控件都可以,就是这个ColorPicker 没效果。

<mx:DataGridColumn headerText="columnColor" >
<mx:itemRenderer> 
<fx:Component>  <s:MXDataGridItemRenderer> 
<mx:ColorPicker id="colord" selectedColor="{data.columnColor}" top="0" left="0"/>
</s:MXDataGridItemRenderer> 
</fx:Component> 
</mx:itemRenderer> 
</mx:DataGridColumn>
3 楼 tuposky 2012-12-24  
楼主怎么把ColorPicker 放到datagrid里面的啊。

我放button,img 等控件都可以,就是这个ColorPicker 没效果。
2 楼 wan53770 2012-12-21  
jiangbo0321@vip.qq.com
麻烦也发我一份!谢谢!
1 楼 tuposky 2012-12-20  
楼主,这个正是我当下非常需要的,能不能把demo发到我邮箱,我参考下啊。

xmlhttprequest@163.com

thanks!

相关推荐

Global site tag (gtag.js) - Google Analytics