Das Problem kann zusammengefasst werden, als wenn ein Element in Datagrid klickt, zeigt der Textbereich den Wert des Elements, aber hier sind die Komponenten getrennt und daher Ereignisse müssen ausgelöst werden.Itemclick-Ereignis in 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>
/////////////////////////////////////////// ////////////////////
Das ist mein Haupt MXML-Anwendungsdatei:
<?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 ... Danke für den Vorschlag .... Aber was ist mit der "Studie" als ein Objekt, das aus "StudyId, Name und userId" besteht? Ich muss nur studyId zeigen. Ist auch mein ItemClick-Ereignis korrekt? Wenn ich die Änderung in meiner mxml-Hauptdatei mache und das itemclick-Ereignis so belasse, wie es ist, wird der Code funktionieren? – user120118
Wenn Ihr Objekt StudyId und UserId als Mitglieder hat, können Sie selectedItem.Study durch selectedItem.StudyId ersetzen, da sich das selectedItem auf Ihr Objekt (Study) bezieht. Ihr itemClickHandler ist korrekt, außer Sie haben keinen Zugriff auf die textArea. Was Sie tun könnten, wenn Sie bei Ihrem Event-Handler bleiben möchten, ist das Senden eines Events von Ihrem itemClickHandler. Ihre Hauptperson sollte dieses Ereignis erfassen und darauf reagieren, indem sie die textArea festlegt. Dies ist ähnlich dem, was ich vorgeschlagen habe, die Handler werden nur versteckt, indem bindbare Eigenschaften verwendet werden. – CookieOfFortune
Eine weitere Option besteht darin, DataGrid um eine Unterklasse zu erweitern, die Ihre Hauptklasse als Eigenschaft akzeptiert. Dann kann es auf alle in main enthaltenen Komponenten zugreifen. – CookieOfFortune