欢迎加入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>
结果: