Flex DataGrid 自动设置列宽

 最近项目中用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>

结果:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值