flex 3 datagrid和xmllistcollection

时间:2009-12-02 17:15:31

标签: flex datagrid itemrenderers

我试图在我的数据网格中的不同字段中显示xmllistcollection的内容,但是除非我使用itemrenderer,否则该值不会显示在网格中。

从webservice调用填充xmllistcollection。在我的项目渲染器中,我使用自定义名称空间从xmllistcollection

中检索内容
value.ns::firstName

但是,如果我在数据网格中尝试使用dataField =“ns :: firstName”而不使用项呈示器,则无法获得数据输出。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

使用labelFunction property

<mx:DataGrid dataProvider="{xml.ns::user}">
    <mx:columns>
        <mx:DataGridColumn labelFunction="nameLabelFunc" headerText="Name"/>
        <mx:DataGridColumn labelFunction="ageLabelFunc" headerText="Age"/>
    </mx:columns>
</mx:DataGrid>
<mx:XML source="data.xml" id="xml"/>
<mx:Script>
    <![CDATA[
        import mx.controls.dataGridClasses.DataGridColumn;
        private var ns:Namespace = new Namespace("http://www.adobe.com");
        public function nameLabelFunc(item:Object, col:DataGridColumn):String
        {
            return item.ns::name;
        }
        public function ageLabelFunc(item:Object, col:DataGridColumn):String
        {
            return item.ns::age;
        }
    ]]>
</mx:Script>

<强> data.xml中

<userInfo xmlns="http://www.adobe.com">
  <user>
    <name>John</name>
    <age>34</age>
  </user>
  <user>
    <name>Gessy</name>
    <age>32</age>
  </user>
</userInfo>