• FFK10 - 13. bis 16. April 2010 in Köln
  • Unterstützt das Flashforum!
  • Adobe User Group
Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-11-2009, 11:51   #1 (Permalink)
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
Alt 25-11-2009, 15:17   #2 (Permalink)
Neuer User
 
Registriert seit: Nov 2009
Beiträge: 3
IDropInListItemRenderer

Hallo alle zusammen,

nach einiger Suche habe ich die Vermutung das mein Problem etwas mit dem Interface IDropInListItemRenderer und dem AdvancedDataGrid zu tuhen hat. Eine Lösung steht aber immer noch aus.

Hier noch ein paar Links auf die ich bereits gestoßen bin:

Custom Renderers for the Flex AdvancedDataGrid - InsideRIA
Creating a component which can be used as Renderer and Editor Flex Script
Flex 3 - Adobe Flex 3 Help

mx.controls.listClasses.IDropInListItemRenderer (Flex 3.4)
sric ist offline   Mit Zitat antworten
Alt 25-11-2009, 16:11   #3 (Permalink)
Neuer User
 
Registriert seit: Nov 2009
Beiträge: 3
Lightbulb Teillösung

... und da bin Ich schon wieder

Die Daten werden jetzt beim Füllen des Grid's richtig im TextInput angezeigt.
Das habe ich durch folgende Änderungen hinbekommen:

Code:
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="160" height="25"
	horizontalAlign="right" verticalAlign="middle" implements="	mx.controls.listClasses.IDropInListItemRenderer">
	
	.
	.
	.


import mx.controls.advancedDataGridClasses.AdvancedDataGridListData;
import mx.controls.listClasses.BaseListData;
	
	.
	.
	.

[Bindable("dataChange")]
	    
public function get listData():BaseListData
{
	return _listData;
}
	    
public function set listData(value:BaseListData):void
{
	_listData = value;
	tipSearchValue.text = AdvancedDataGridListData(listData).label;
	tipSearchValue.toolTip = AdvancedDataGridListData(listData).label;
}

	
	.
	.
	.

</mx:HBox>
Klickt man aber in die Zelle (TextInput im ItemRenderer) und wieder raus (ohne Eingaben bzw. Änderungen), wird der alte Wert der Zelle nicht wieder hergestellt und das TextInput Feld bleibt leer.

Lg Stefan
sric ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
itemeditor, itemrenderer, lookupgrid

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Eigener itemRenderer für DataGrid stnswz Flex programmieren 20 14-08-2008 18:00
DataGrid: ItemRenderer wird mehrmals ausgeführt pro Zeile nsp Flex programmieren 2 11-07-2008 16:22
Datagrid - itemRenderer Problem eiklist Flex programmieren 2 19-09-2007 12:17
Referenz an dataGrid itemRenderer übergeben Ju2999 Flex allgemein 5 11-10-2006 18:38
Inhalte von einem Datagrid in ein zweites Datagrid übergeben...?! dahoody Flash MX 2004 0 16-02-2005 15:19


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:31 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
FFK10 - 13. bis 16. April 2010 in Köln


Copyright ©1999 – 2010 Marc Thiele und Sascha Wolter.