Einzelnen Beitrag anzeigen
Alt 25-11-2009, 11:51   #1 (permalink)
sric
Neuer User
 
Registriert seit: Nov 2009
Beiträge: 3
Question Wert aus dataGrid an itemRenderer/Editor übergeben

Hallo Leute, ich habe ein Problem mit einer Custom Component.

Diese enthält ein TextInput und einen Button. Nun möchte Ich die Komponente möglichst generisch halten so das sie als ItemRenderer/Editor eingesetzt werden kann, aber auch als normales Steuerelement. Im DataGrid möchte ich das im "text" Attribut des TextInput Feldes der Wert aus der dg Zelle steht und dort auch beim verlassen des Editors stehen bleibt. Z.z. werden die Werte einfach nicht Richtig geladen.

Komponente:
Code:
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="160" height="25" horizontalAlign="right" verticalAlign="middle">
	<mx:Metadata>
		[Event(name="close", type="flash.events.Event")]
   </mx:Metadata>
<mx:Script>
	<![CDATA[
		import mx.events.FlexEvent;
		import mx.collections.ArrayCollection;
		import mx.managers.PopUpManager;
		import mx.core.IFlexDisplayObject;
	
	 	private var lookupPopup:IFlexDisplayObject;
	 	private var isOpen:Boolean = false;
	 	
	 	public var dataProvider:ArrayCollection;
	 	public var selectedItem:Object;
	 	
	 	[Bindable] public var text:String;
		[Bindable] public var labelField:String;
		[Bindable] public var columns:Array;
  		

/* Weitere Funktionen ...

.
.
.

*/

	
	]]>
</mx:Script>
	<mx:TextInput text="{text}" id="tipSearchValue" width="80%" change="showLookupWindow()" />
	<mx:Button click="showLookupWindow()" label="Button" width="25" cornerRadius="0" borderColor="#FFFFFF" icon="@Embed(source='../../../../resources/report.png')" id="btnSearch"/>	
</mx:HBox>
und hier der Aufruf aus dem DataGrid:
Code:
<mx:AdvancedDataGridColumn rendererIsEditor="true" editable="true" editorDataField="text" width="102" id="col_artnr" dataField="artnr" >
			<mx:itemRenderer>
				<mx:Component>
						<elaser:lookupWindow width="{outerDocument.col_artnr.width}" labelField="artnr"
						dataProvider="{outerDocument.artikel}"
						close="outerDocument.selectedArtikel(event)"
						columns="{['artnr','kurz','epreis']}"
						/>
				</mx:Component>
				</mx:itemRenderer>
			</mx:AdvancedDataGridColumn>
Die Methode welche beim "close" Event ausgeführt wird sieht wie folgt aus:

Code:
public function selectedArtikel(ev:Event):void {
			lblStatus.text = "Artikel ausgewählt";
			var obj:Object = hans.peter.baxter.lookupWindow(ev.currentTarget).selectedItem;
			var bpos:Belegpos = (gridBelegpos.selectedItem as Belegpos);
			bpos.artnr = obj.artnr;
			bpos.epreis = obj.epreis;
			bpos.kurz = obj.kurz;
			gridBelegpos.selectedItem = bpos;
		}
Vielen Dank für eure Hilfe!

Geändert von sric (25-11-2009 um 14:19 Uhr) Grund: zusätzliche Informationen
sric ist offline   Mit Zitat antworten