Apache flex 将对象数组指定给数据网格

Apache flex 将对象数组指定给数据网格,apache-flex,mxml,Apache Flex,Mxml,当DataGrid的dataProvider是一个对象数组时,如何将每列的dataField设置为对象的属性 我有一个ArrayCollection(比如a),其中每个项目都是一个对象 例如a[i]=data:Object 其中,对象数据有一些子属性-data.name、data.title、data.content等 我有一个数据网格,我想在其中显示这些数据 所以我说: <mx:DataGrid id="entries" dataProvider="{resultRSS}">

当DataGrid的dataProvider是一个对象数组时,如何将每列的dataField设置为对象的属性

我有一个ArrayCollection(比如a),其中每个项目都是一个对象 例如
a[i]=data:Object
其中,对象数据有一些子属性-
data.name
data.title
data.content

我有一个数据网格,我想在其中显示这些数据

所以我说:

<mx:DataGrid id="entries" dataProvider="{resultRSS}">
  <mx:columns>
<mx:Array>
  <mx:DataGridColumn headerText="Title" dataField="data.title"/>
  <mx:DataGridColumn headerText="Date" dataField="data.created"/>
</mx:Array> 
  </mx:columns>
</mx:DataGrid>
桌子应该是

 |title     |name      |text     |
 =================================
 |something |something |some html|
 |something2|something2|somehtml2|
这是你的答案

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initialize()">

<mx:Script>
    <![CDATA[
        import mx.collections.HierarchicalData;

        var a:Array = new Array();
        var o:Object = {};
        private function initialize():void{
          o["text"]="hello";
                  o["desc"]="Rahul";
          a.push(o);
        }

    ]]>
</mx:Script>


    <mx:AdvancedDataGrid width="100%" height="100%" sortExpertMode="true" id="adg1" designViewDataType="tree" dataProvider="{new HierarchicalData(a)}">
        <mx:columns>
            <mx:AdvancedDataGridColumn headerText="text" dataField="text"/>
            <mx:AdvancedDataGridColumn headerText="desc" dataField="desc"/>
        </mx:columns>
    </mx:AdvancedDataGrid>

</mx:Application>

编辑-确定现在根据您的数据放弃我以前的答案试试这个

var a:Array = new Array();
        var o:Object = {};      
        private function stringArrayToObjectArray():void{
            o["id"]="mauj";
            var oj:Object=new Object();
            oj["title"]="aaa";
            o["data"]=oj;

            var oj1:Object=new Object();
            oj1["id"]="mauj2";
            var oj2:Object=new Object();
            oj2["title"]="qqqq";
            oj1["data"]=oj2;


            a.push(o);      
            a.push(oj1);        
        }

         private function some_labelFunc(item:Object,th:Object):String {
                return item.data.title;
            }

    ]]>
</mx:Script>



    <mx:AdvancedDataGrid  width="100%" height="100%" sortExpertMode="true" id="adg1" dataProvider="{a}">
        <mx:columns>
            <mx:AdvancedDataGridColumn headerText="COMPANIES" dataField="data" labelFunction="some_labelFunc"/>
        </mx:columns>
    </mx:AdvancedDataGrid>

</mx:Application>
var a:Array=new Array();
var o:Object={};
私有函数StringArrayTobjectArray():void{
o[“id”]=“mauj”;
var oj:Object=新对象();
oj[“头衔”]=“aaa”;
o[“数据”]=oj;
var oj1:Object=新对象();
oj1[“id”]=“mauj2”;
var oj2:Object=新对象();
oj2[“标题”]=“qqqq”;
oj1[“数据”]=oj2;
a、 推(o);
a、 推送(oj1);
}
私有函数some_labelFunc(项:Object,th:Object):字符串{
返回item.data.title;
}
]]>

请尝试此操作,抱歉代码太糟糕

,但问题是我不想将其显示为树。我想将其显示为普通表。唯一的问题是,数据域的数据是比通常更深的一个对象。要删除树类型,只需删除HierarchicalData并添加您的集合。对于数据,您可以提供您的数据示例吗?我已添加了我的数据示例。
var a:Array = new Array();
        var o:Object = {};      
        private function stringArrayToObjectArray():void{
            o["id"]="mauj";
            var oj:Object=new Object();
            oj["title"]="aaa";
            o["data"]=oj;

            var oj1:Object=new Object();
            oj1["id"]="mauj2";
            var oj2:Object=new Object();
            oj2["title"]="qqqq";
            oj1["data"]=oj2;


            a.push(o);      
            a.push(oj1);        
        }

         private function some_labelFunc(item:Object,th:Object):String {
                return item.data.title;
            }

    ]]>
</mx:Script>



    <mx:AdvancedDataGrid  width="100%" height="100%" sortExpertMode="true" id="adg1" dataProvider="{a}">
        <mx:columns>
            <mx:AdvancedDataGridColumn headerText="COMPANIES" dataField="data" labelFunction="some_labelFunc"/>
        </mx:columns>
    </mx:AdvancedDataGrid>

</mx:Application>