Flex Datagrid并查找类的数字成员变量

时间:2011-03-01 19:22:10

标签: flash flex actionscript-3

我有两个问题

  1. 如何在不指定DataGridColumn的情况下从Arraycollection填充flex数据网格。是否有可用的自定义数据网格,我可以传递数据源arraycollection并查看输出中填充的数据。

  2. 在不知道对象的结构/蓝图的情况下,无论如何都要找到该类有多少成员变量?

2 个答案:

答案 0 :(得分:1)

关于你的第二个问题 - 有两种方法可以做到这一点:

  1. 使用for..in循环。这仅适用于动态添加的属性。
  2. 使用describeType API。这将返回描述对象的丰富XML对象,包括其所有成员变量及其可见性。
  3. 您可以详细了解这两种技术here

答案 1 :(得分:1)

       static public function getDetails(argData:Object , grid:DataGrid):void { 
            // Get the Button control's E4X XML object description.
            var classInfo:XML = describeType(argData);
            // List accessors as properties.
            var _columnList:Array = new Array();
            for each (var a:XML in classInfo..accessor) {
                // Do not get the property value if it is write only.
                var _column:DataGridColumn = new DataGridColumn;  
                // Setting properties  
                _column.headerText = a.@name;  
                _column.dataField = a.@name;  
                _column.width = 180;  
                _columnList.push(_column);   
            } 
            grid.columns = _columnList;
        }

通过此例程填充Datagrid,有助于大量调试我的结果数据。