?最近项目中用datagrid. 不爽的是列太多了,他又不能自动设置列宽,一个一个设置也不知道多宽为妙,于是写了个自动设置列宽的方法,希望用到的可以参考,不明白的留言,呵呵!
??????欢迎加入flex群: 117376837(可获得源码)
????? 代码如下:
as类
??package my.tools.datagrid
??{
???import flash.text.TextLineMetrics;
???
???import mx.controls.DataGrid;
???import mx.controls.dataGridClasses.DataGridColumn;
??
???public class DataGridTools
???{
????/**
???? * 自动设置datagrid的列宽
???? */
????public static function setColumnsWidth(dataGrid:DataGrid):void
????{
?????var gridWidth:int=0;
?????for(var i:int=0;i<dataGrid.columnCount;i++)
?????{
??????var column:DataGridColumn=dataGrid.columns[i];
??????var colWidth:int=(column.headerText.length+2)*dataGrid.getStyle("fontSize");
??????column.width=colWidth;
??????gridWidth+=colWidth;
?????}
?????dataGrid.width=gridWidth;
????}
???}
??}?
测试页面:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" horizontalScrollPolicy="on" >
?<mx:Script>
??<![CDATA[
???protected function init():void
???{
????DataGridTools.setColumnsWidth(dgrTest);
???}
??]]>
?</mx:Script>
?<mx:DataGrid id="dgrTest" top="0" left="0" fontSize="12" initialize="init()" horizontalScrollPolicy="on">
??<mx:columns>
???<mx:DataGridColumn headerText="操" dataField=""/>
???<mx:DataGridColumn headerText="有一种苍蝇叫黄粪蝇 " dataField=""/>
???<mx:DataGridColumn headerText="每当一坨新鲜的大粪落地" dataField=""/>
???<mx:DataGridColumn headerText="它们就蜂拥而来" dataField=""/>
???<mx:DataGridColumn headerText="饱餐之后开始在粪上寻找交配对象" dataField=""/>
???<mx:DataGridColumn headerText="看对眼的就嘿咻" dataField=""/>
???<mx:DataGridColumn headerText="过程和其它苍蝇没什么两样" dataField=""/>
???<mx:DataGridColumn headerText="特别的在于" dataField=""/>
???<mx:DataGridColumn headerText="为保证母蝇最后生的是自己的种" dataField=""/>
???<mx:DataGridColumn headerText="公蝇在嘿咻完之后" dataField=""/>
???<mx:DataGridColumn headerText="会一直保持两蝇交配的体位" dataField=""/>
???<mx:DataGridColumn headerText="直到母蝇产卵" dataField=""/>
???<mx:DataGridColumn headerText="其间它用中间一对腿抱住母蝇" dataField=""/>
???<mx:DataGridColumn headerText="用其它两对腿和不断前来骚扰有着不良企图的无数公蝇战斗" dataField=""/>
???<mx:DataGridColumn headerText="这个自然现象告诉我们:" dataField=""/>
???<mx:DataGridColumn headerText="不要以为自己时间很长" dataField=""/>
???<mx:DataGridColumn headerText="你试试一直做到临产" dataField=""/>
???<mx:DataGridColumn headerText="操" dataField=""/>
??</mx:columns>
?</mx:DataGrid>
?
</mx:Application>
结果:
?
来自:
http://hi.baidu.com/qq825129090/blog/item/088a3127c06f71258644f977.html