论坛首页 编程语言技术论坛

flex设计表格的复杂表头(类似报表的斜线表头)

浏览 9959 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-05-06   最后修改:2009-05-06
前段时间,项目中开始使用flex了。碰到一个难题,flex的dagagrid和advancedDataGrid的表头没有斜线(好像没有什么控件会考虑这个)


而自己对flex只是熟悉控件的使用,搜索无果,幸好公司的技术顾问是这方面的高手吧。就让他帮忙给搞好了。感谢。。
主要文件
<?xml version="1.0" encoding="utf-8"?>

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" 

	creationComplete="init()">

	<mx:Script>

		<![CDATA[

			import mx.events.ResizeEvent;

			import mx.controls.Label;

			

			private const leftText:String = "月份";

			private const rightText:String = "户型";

			

			private var leftLabel:Label;

			private var rightLabel:Label;

			

			private function init():void{

				addLabel();

				drawLine();				

				this.addEventListener(ResizeEvent.RESIZE, onResize);

			}

			

			private function onResize(e:ResizeEvent):void{

				resetLabel();

				drawLine();

			}

			

			private function drawLine():void{

				var g:Graphics = this.graphics;

				g.clear();

				g.lineStyle(0.5, 0xB7BABC);

				g.moveTo(0, 0);

				g.lineTo(this.width, this.height);

			}

			

			private function addLabel():void{

				leftLabel = new Label();

				leftLabel.text = leftText;

				addChild(leftLabel);

				

				rightLabel = new Label();

				rightLabel.text = rightText;

				addChild(rightLabel);

				

				callLater(resetLabel);

			}

			

			private function resetLabel():void{

				leftLabel.x = 5;

				leftLabel.y = this.height - leftLabel.height - 5;

				rightLabel.x = this.width - rightLabel.width;

				rightLabel.y = 10;

			}

		]]>

	</mx:Script>	

</mx:Canvas>


使用
<mx:AdvancedDataGridColumn dataField="yf" headerText="月份" headerWordWrap="true"

					headerRenderer="MyRenderer"/>

效果图:



  • 大小: 25.4 KB
  • 大小: 25.8 KB
   发表时间:2009-05-06  
很不错.
------
javaeye字数补丁
0 请登录后投票
   发表时间:2009-05-06   最后修改:2009-05-06
这个问题,解决方案多得是。
你用graphics画可以。
直接用带斜线的背景图也可以。
用HRule设置rotate同样可以。
关键是对Renderer的了解。
0 请登录后投票
   发表时间:2009-07-15  
我们现在遇到一个需求,不仅仅是复杂的表头了,表体中还需要行合并,更合并之类的。
就是说可能表体左边部分,有点像复杂表头一样,不知这样的报表应该如何来做啊?
0 请登录后投票
   发表时间:2009-11-17  
很想知道楼主的复合表头是怎么做出来的,希望能讲讲源码
0 请登录后投票
   发表时间:2009-11-23  
很不错,用画线的方式,只是style和datagrid不是联动的
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics