Le problème peut être résumé comme lorsque vous cliquez sur un élément dans datagrid, la zone de texte affiche la valeur de l'élément, mais ici les composants sont séparés et donc les événements doivent être distribués.L'événement Itemclick dans datagrid
My mxml component file :
<?xml version="1.0" encoding="utf-8"?>
<mx:DataGrid xmlns:mx="http://www.adobe.com/2006/mxml" itemClick="itemClickEvent(event);" creationComplete="init()">
<mx:Metadata>
[Event(name="IdSelected", type="one.IdEvent")]
</mx:Metadata>
<mx:Script>
<![CDATA[ import genericReport.*;
import crewUtilization.*;
import utils.*;
import studies.*;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
import mx.events.ListEvent;
private function itemClickEvent(event:ListEvent):void
{
var _study:Object=event.currentTarget.selectedItem.study;
dispatchEvent(new IDEvent(_ID));
}
]]>
</mx:Script>
<mx:columns>
<mx:DataGridColumn dataField="name" />
<mx:DataGridColumn dataField="userId" />
</mx:columns>
</mx:DataGrid>
/////////////////////////////////////////// ////////////////////
Ceci est mon principal MXML dossier de candidature:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:custom="*">
<mx:TitleWindow label="Scenario Creation" xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:ns1="ccCreation.*">
<mx:Label text="CC CREATION" width="100%" />
<mx:VBox width="100 %" styleName="scenariovboxStyle">
<custom:studySelector id="dg" />
</mx:VBox>
</mx:TitleWindow>
</mx:Application>
hey ... Merci pour la suggestion .... Mais, qu'en est-il du 'Study' étant un objet qui se compose de "StudyId, name et userId". Je dois montrer seulement studyId. De plus, mon événement ItemClick est-il correct? c'est-à-dire que si je fais la modification dans mon fichier mxml principal et que je garde l'événement itemclick tel quel, le code fonctionnera-t-il? – user120118
Si votre objet a StudyId et UserId en tant que membres, vous pouvez remplacer selectedItem.Study par selectedItem.StudyId, car l'élément selected se référera à votre objet (Study). Votre itemClickHandler est correct, sauf que vous n'avez pas accès à textArea. Ce que vous pourriez faire si vous vouliez rester avec votre gestionnaire d'événements, c'est d'envoyer un événement à partir de votre itemClickHandler. Votre principal doit attraper cet événement et répondre en définissant textArea. Ceci est similaire à ce que j'ai suggéré, les gestionnaires sont juste cachés en utilisant des propriétés bindable. – CookieOfFortune
Une autre option consiste à étendre DataGrid avec une sous-classe qui prend votre classe principale en tant que propriété. Ensuite, il peut avoir accès à tous les composants contenus dans main. – CookieOfFortune