Forums Développement Multimédia

Aller au contenu

[Flex/AS3] Remplir une dataGrid avec un ArrayCollection

CODE Actionscript

3 réponses à ce sujet

#1 Vulfhelm

    Ceinture Orange

  • Members
  • PipPipPip
  • 47 messages

Posté 14 May 2012 - 20:26 PM

Bonjour à tous,

Après des heures de recherches non fructueuses, je viens vous exposer mon problème dans l'espoir que vous pouviez m'aider.

Je donc cherche a remplir une dataGrid avec un ArrayCollection de la sorte :

Image IPB


Avec mon ArrayCollection qui est de ce type :

Image IPB

Mon ArrayCollection a été crée a partir d'un array (var EquipArrayColec:ArrayCollection = new ArrayCollection(equipement); )

Tout d'abord peut on me dire pourquoi mon ArrayCollection contient une propriété source, a quoi sert-elle et surtout pourquoi je trouve le contenu de mon array equipement à l’intérieur?

En consultant les deux images, vous pouvez constater que je souhaite afficher chaque "clef" de source dans la colonne Catégorie de ma dataGrid, ensuite on peut voir dans l'image de mon ArrayCollection que la valeur assignée à chaque catégorie(ou clef) est un "Item"(classe crée en AS3), cette classe comprend une méthode retournant le nom de l'item soit getNom(),

Je souhaite donc afficher dans chaque ligne de ma dataGrid, le nom de l'item correspondant à sa catégorie,

Voilà, j’espère avoir été quand même assez clair car j'ai le cerveau embrouillé par les tutos trouvés sur le net qui je pense n'ont fait que m'enfoncer encore plus dans mon problème,

Je vous remercie d'avance pour l'aide, si besoin de plus d'infos, n'hésitez pas,

Cordialement,

Vulfhelm

#2 Tonic

    Plop

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5712 messages

Posté 15 May 2012 - 11:39 AM

Salut,

la propriété source d'un ArrayCollection, c'est les données de bases contenues dans ta collection.
Voit l'ArrayCollection comme un conteneur d'Array sur lequel tu est capable d’effectuer des opérations (ajout, modification, suppression). L'intérêt de l'ArrayCollection, c'est que dès qu'il est modifié, il va dispatcher un évènement. C'est grâce à cela que tu peux directement "binder" ta source de données à un composant graphique, puisque le composant graphique va écouter ces changement pour se mettre à jour.

Sinon, pour ton problème, regarde le 2ème exemple ici :

http://help.adobe.co...04dca-8000.html

Tu as la propriété dataField sur la GridColumn qui te permet de définir quelle propriété de ton objet doit être affiché dans cette colonne. Si cette propriété ne suffit pas, tu peux aussi utiliser la propriété labelFunction qui renvera la chaîne à afficher.

++ ^^

#3 Vulfhelm

    Ceinture Orange

  • Members
  • PipPipPip
  • 47 messages

Posté 15 May 2012 - 22:31 PM

Hello et merci beaucoup Tonic!

C'est OK, j'arrive a retrouver mes Items en fonction de leur catégorie dans ma DG, l'exemple 2 m'a bien servi!

Je vais maintenant me pencher sur 'datafield et labelFunction' car pour l'instant je ne retrouve que [Object Item] mais c'est en bonne voie :o) !

Merci beaucoup une nouvelle fois, je tiens au courant,

Vulf.

#4 Tonic

    Plop

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5712 messages

Posté 16 May 2012 - 08:08 AM

Impec! ^^

C'est normal que tu es la chaîne "[Object Item]", c'est la méthode toString() par défaut de ton objet, donc soit tu overrides cette méthode toString() pour renvoyer la chaîne que tu veux, soit tu passes par les propriétés 'datafield' et 'labelFunction' (plus élégant).

++ ^^



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP