flex advanceddatagrid动态生成大数据+动态生成列

写这个测试主要是为了测试在一个界面上,如果有一个表,表列有250列,行100行,里面填充数据也就是250*100个节点数据,页面是否会崩溃,发现,大概7.8秒左右出现界面,没有崩溃,希望对有同样需求的人有帮助,3Q -nj

<?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
               initialize="initTable()"
               creationComplete="drawTable()">
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
            import mx.events.FlexEvent;
            
            private var columnsArrayCollection:ArrayCollection=new ArrayCollection();
            /**
             *
             *初始化表格列头
             *
             */
            protected function initTable():void
            {
                var datagridColumnPosition:AdvancedDataGridColumn;
                for(var i:int=0;i<250;i++)
                {
                     //创建一列
                    datagridColumnPosition = new AdvancedDataGridColumn();
                    datagridColumnPosition.width=60;
                    //表头文字
                    datagridColumnPosition.headerText=i+"列";
                    //datafield
                    datagridColumnPosition.dataField=("d"+i.toString());
                    //将列添加到grid
                    columnsArrayCollection.addItem(datagridColumnPosition);
                }
                tab.groupedColumns=columnsArrayCollection.toArray();
            }
            /**
             *动态给表格填入数据
             *
             */
            private var alllist:ArrayCollection = new ArrayCollection();
            protected function drawTable():void
            {
                var obj:Object = new Object();
                for(var k:int=0;k<100;k++)
                {
                    for(var n:int=0;n<250;n++)
                    {
                        obj["d"+n] = "one"+n;
                    }
                    alllist.addItem(obj);
                }
                tab.dataProvider = alllist;
                
            }
        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    </fx:Declarations>
    <mx:AdvancedDataGrid id="tab" left="30" right="30" top="30" bottom="30"
                         horizontalScrollPolicy="on" textAlign="center"
                         verticalScrollPolicy="on"
                         sortExpertMode="true">
    </mx:AdvancedDataGrid>
</s:Application>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值