2009-12-11 2 views
0

Auparavant, je publiais une discussion sur ce sujet sur le forum Flex Adobe et je ne comprenais toujours pas ce qui devait être fait. Donc, je vais tenter ma chance sur stackoverflow. J'utilise glisser-déposer fonctionnalité de liaison de données dans Flash Builder 4 sur une grille de données. Cependant, les données que je dois montrer doivent être interrogées à partir d'un autre objet.Affichage des propriétés de deux objets dans une grille de données

<mx:DataGrid id="dataGrid2" dataProvider="{getMajorDetailsResult.lastResult}"> <mx:columns> <mx:DataGridColumn headerText="Category Name" /> <mx:DataGridColumn headerText="Require Credits" dataField="requireCredits" resizable="false" width="40"/> </mx:columns> </mx:DataGrid>

Je voudrais afficher Dans ce DataGrid je lie avec un objet MACL qui a

  • ID
  • CAT_ID
  • de requireCredits

Cependant, CategoryName dans la première colonne mais categoryName est dans un autre objet (catégorie)

  • CAT_ID
  • CategoryName

Dans ce cas, que dois-je faire?

Je l'ai fait de sorte que si dans le futur nom de catégorie doit être renommé. Je peux juste renommer celui dans la table de catégorie.

Quelqu'un m'a dit d'utiliser un modèle de données. Je suppose que je devrais essayer de lancer l'objet récupéré de callresponder dans mon objet de classe auto-défini, puis mettre cette classe à DataProvider de mon DataGrid? Est-ce ce qu'il faut faire

Le code de l'échantillon est très apprécié.

Répondre

2

vous pouvez utiliser le labelFunction attribut du DataGridColumn dans lequel vous attribuez une fonction qui décide ce qui est va être indiqué dans la colonne:

private function labelFunction(item:Object, column:DataGridColumn):String 
{ 
    //search for the categoryName 
    for (var i:int = 0; i < categories.length; i++) 
    { 
     var category:Category = categories[i]; 
     if (category.cat_id == item.cat_id) 
     { 
      return category.categoryName; 
     } 
    } 
    // in case it was not fault return a default value 
    return ""; 
} 

HTH Gus

+0

Cela devrait faire il. Merci beaucoup Gus :) – Pii

Questions connexes