2010-07-05 6 views
-1

J'ai une grille de données qui a id="myGrid" dans mon application, à partir de ce que j'appelle un composant. Maintenant, à partir du composant, je peux appeler parentDocument.myGrid.selectedIndex = 0; et cela fonctionne très bien.Accéder aux objets de Flex par l'ID

Mais je veux rendre le composant réutilisable, et je voudrais passer l'ID au composant à chaque fois, donc myGrid va changer, comment envoyer correctement l'ID au composant, et l'utiliser dans le composant?

Répondre

-1

Je prolongerait le DataGrid d'ajouter la nouvelle propriété que vous pouvez passer. Lors de la création d'un nouveau composant, il existe une option pour "étendre" un composant existant; il suffit donc d'étendre le DataGrid. Cela vous donnera toutes les propriétés du DataGrid. La propriété peut être quelque chose comme ceci:

public var myParentDoc : UICpomponent; 

Cependant, puisque vous n'avez pas expliqué ce que vous faites, je ne suis pas sûr que je comprends parfaitement la façon dont vous utilisez parentDocument ou dans quel but. Où dans votre DataGrid utilisez-vous parentDocument? Dans un eventListener? Ou dans un itemRenderer?

+0

Alors, pourquoi était-ce downvoted? – JeffryHouser

-2
  1. créer un nouveau composant MXML et mettre tout votre code DataGrid à l'intérieur
  2. utilisateur le nouveau composant au lieu de la grille de données et attribuer des ids
+0

Compte tenu de sa description; Je recommande d'étendre le DataGrid pour ajouter une nouvelle propriété; ne crée pas un nouveau composant qui contient le DataGrid. – JeffryHouser

+0

pourquoi ne pas utiliser un nouveau contrôle? dépend de la situation! –

+0

Cela dit, l'affiche originale utilise un DataGrid. S'il utilise la composition pour placer le DataGrid dans un conteneur, il devra exposer toutes les propriétés DataGrid qu'il utilise dans le cadre de ce nouveau composant et les transmettre au DataGrid. C'est un surdébit inutile. De plus, il ajoute un conteneur inutile à son application, ce qui peut avoir une incidence sur les performances et l'utilisation de la mémoire. Je suis d'accord que le choix dépend de la situation, sur la base de ce que nous savons du message original; il n'y a aucun avantage à enfermer le DataGrid dans un conteneur, mais il y a des inconvénients. – JeffryHouser

Questions connexes