flex 3 datagrid и xmllistcollection - PullRequest
       35

flex 3 datagrid и xmllistcollection

1 голос
/ 02 декабря 2009

Я пытаюсь отобразить содержимое xmllistcollection в разных полях в моей сетке данных, однако, если я не использую itemrenderer, значение не отображается в сетке.

коллекция xmllistcollection заполняется из вызова веб-службы. Внутри моего средства визуализации элементов я использую пользовательское пространство имен для извлечения содержимого из коллекции xmllistcollection

value.ns::firstName

однако, если я попробую что-то вроде dataField = "ns :: firstName" в сетке данных без использования средства визуализации элементов, я не получу вывод данных.

Кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 03 декабря 2009

Используйте свойство labelFunction .

<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>
...