2009-07-13 6 views
0
<local:CheckBoxDataGrid id="dg" 
        allowMultipleSelection="true" x="118" y="151" width="557"> 
     <local:columns> 
      <mx:DataGridColumn dataField="firstName" headerText="Select" width="50" sortable="false" itemRenderer="CheckBoxRenderer" > 
      </mx:DataGridColumn> 
      <mx:DataGridColumn id="userID" headerText="User ID" /> 
      <mx:DataGridColumn dataField="userlevel" editable="true" headerText="Role" /> 
      <mx:DataGridColumn id="email" headerText="Email" /> 
     </local:columns> 
    </local:CheckBoxDataGrid> 

private function getUs(data:Object):void{ 
     var appSes:ArrayCollection = new ArrayCollection(data.result); 
      dg.dataProvider = appSes; 
      } 

Je reçois les valeurs comme ArrayCollection, mais quand je le lie à mon Datagrid, je ne reçois aucune valeur .... bien que les objets retournés par PHP soient bien.Données pour les colonnes dans Flex

Répondre

1

Avez-vous essayé le débogage? Je suggère d'exécuter un débogage avec un point d'arrêt immédiatement après la définition de var appSes, et d'inspecter cette variable pour être sûr que l'ArrayCollection est en train de créer correctement avec les données du résultat e Service.

Si ArrayCollection est créé correctement, assurez-vous ensuite que les noms dataField correspondent correctement aux données de ArrayCollection. Ils sont sensibles à la casse. Essayez de supprimer toutes les colonnes du DataGrid. Si votre ArrayCollection est valide, le DataGrid crée automatiquement des colonnes avec les noms dataField dans le ArrayCollection comme les en-têtes de colonnes:

ArrayCollection: 
    {firstName: "Joe", userID: 1, userlevel: 3, email: "[email protected]"}, 
    {firstName: "Mary", userID: 2, userlevel: 4, email: "[email protected]"}, 
    {firstName: "Bob", userID: 3, userlevel: 2, email: "[email protected]"} 

Will display as the following if you do not specify columns: 

firstName   userId  userLevel email 
------------------- ------------- ------------ ---------------------------- 
Joe     1    3   [email protected] 
Mary    2    4   [email protected] 
Bob     3    2   [email protected] 

Hope that helps!

+0

Pas de problème! Heureux de vous aider! –

0

Ma première recommandation serait de tester ce sans chargement des choses dans PHP. Copiez les données dans une ArrayCollection locale et attribuez-en en fonction.

Vous pouvez également initialiser la propriété dataprovider (cela aide parfois, en dépit du fait qu'il ne soit pas censé à):

<local:CheckBoxDataGrid id="dg" dataProvider="{ myArrayCollection }" 

...

[Bindable] 
private var myArrayCollection:ArrayCollection 

.. Faites-moi savoir si cela aide.

private function getUs(data:Object):void 
{ 
    myArrayCollection = new ArrayCollection(data.result); 
    trace(myArrayCollection); // Just a sanity check. 

Questions connexes