2010-08-05 9 views
2

Ici, je je suis en train de l'analyse d'un XML comme ci-dessous:problème avec l'analyse syntaxique XML à DataGrid dans Flex

<?xml version="1.0" encoding="utf-8" ?> 
<spearkerslist> 
    <speakers langid="afb" countryid="SA">200000</speakers> 
    <speakers langid="acw" countryid="SA">6000000</speakers> 
    <speakers langid="ars" countryid="SA">8000000</speakers> 
    <speakers langid="arb" countryid="SA">206000000</speakers> 
</spearkerslist> 

Par ce code, je suis en mesure d'analyser les paramètres LANGID et countryid, mais je suis pas en mesure d'analyser les valeurs réelles 200000, 6000000, ... dans la grille de données. Y a-t-il un moyen d'y accéder sans modifier le XML généré?

<mx:Script> 
[Bindable] 
private var languagelist:XML = new XML(); 
</mx:Script> 

<mx:DataGrid dataProvider="{languagelist.speakers}"> 
    <mx:columns> 
     <mx:DataGridColumn id="populationCol" dataField="speakers" headerText="Speakers" /> 
     <mx:DataGridColumn id="countryID" dataField="@countryid" headerText="Country Id" /> 
     <mx:DataGridColumn id="LangID" dataField="@langid" headerText="Language Id" /> 
    </mx:columns> 
</mx:DataGrid> 

Répondre

2

Essayez sans dataField:

<mx:DataGridColumn id="populationCol" headerText="Speakers" /> 

Si cela ne fonctionne pas, utilisez labelFunction

<mx:DataGridColumn id="populationCol" headerText="Speakers" 
    labelFunction="dgLabelFunction"/> 

Définir comme:

public function dgLabelFunction(item:Object, col:DataGridColumn):String 
{ 
    return item.text().toString(); 
} 
+0

labelFunction() a fonctionné pour moi! – Saneef

0

Juste un FYI pour quelqu'un fa Vous pouvez également spécifier dataField = "*" pour obtenir le même résultat.

<mx:DataGridColumn id="populationCol" headerText="Speakers" dataField="*"/>