2009-05-11 11 views
0

J'ai une grille de données avec itemRenderer personnalisé. Quand je clique dans une cellule, j'obtiens sa référence. Maintenant, je voudrais obtenir la référence de l'autre colonne dans la ligne SAE. par exemple. Dans le DataGrid j'ai cliqué dans la 4ème colonne de la 3ème rangée, je reçois la référence de cela pas de problème dans cela. Maintenant, je voudrais obtenir la référence de la 1ère colonne de la même rangée que la 3ème.flex air datagrid itemRenderer

Y a-t-il un moyen?

Merci.

Répondre

0

Les moteurs de rendu personnalisés doivent être pilotés par des données. En d'autres termes, tout ce qui vous intéresse devrait être sur la propriété "data" du rendu. Si vous devez manipuler une autre cellule, vous devez manipuler les données de la ligne et la cellule doit se mettre à jour automatiquement.

C'est la raison pour laquelle vous avez du mal avec ça - il n'y a pas de bon moyen d'obtenir une référence à une autre cellule. Il y a de mauvaises manières, mais ils sont mal :)

0

ne sais pas si je comprends tout à fait correct, mais ici va ...

mis sur votre DataGrid un événement click

<mx:DataGrid id="myDatagrid" click="getValues()" dataProvider="{someArrayColl}"/> 

Disons que la première colonne porte le nom: « id_column » entre les lignes de script:

private function getValues():void{ 
var first_column_value:String = myDatagrid.selectedItem.id_column; 

//if you want the entire row in 1 Array 
var the_selected_row:Array = myDatagrid.selectedItem as Array; 
} 

ont pas testé la déclaration de tableau, mais il devrait fonctionner. myDatagrid.selectedItem est un objet par défaut d'un arraycollection. // vous devriez mettre une instruction try and catch dans la fonction getValues ​​pour intercepter l'exception lorsque les utilisateurs cliquent sur un headeritem ou sur la barre de défilement de dataagrid.