Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-03-2008, 10:11   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2008
Beiträge: 50
Probleme mit HttpService die 20. ...

Morgen zusammen,

erstmal ein "Hallo" in die Runde, bin ja neu hier Habe erst vor kurzem mit Flex und AS3 angefangen, von daher möge man mir etwaige Anfängerfehler verzeihen.

Ich komme direkt mal zu meinem Problem:

Ich möchte ein Datagrid mit unterschiedlichen xml Daten befüllen, je nachdem welches Blatt des anliegenden Trees ausgewählt wird. Beim changeEvent des Trees wird die url zum xml File gesetzt und das .send() abgesetzt und dabei dann auch das Grid passend zur xml Struktur erstellt.

Das Problem ist nun dass beim ersten Klick auf ein Element des Trees ein leeres Grid angezeigt wird. Die Columns sind da, aber die Infos aus der xml Datei noch nicht. Erst wenn man ein anderes Blatt anklickt und zum vorherigen zurückgeht, wird das Grid gefüllt.

Den existierenden Thread (Applikation startet erst beim 2. Klick) habe ich schon gefunden, ist aber nicht die Lösung meines Problems. Ich denke eher dass die Daten noch nicht geladen sind wenn das Grid gezeichnet wird.

Die Frage ist nun, ob es eine Möglichkeit gibt, das Zeichnen des Grids solange rauszuzögern, bis .lastResult eingetreten ist. Alternativ wäre ein refreshen des Grids vielleicht hilfreich, nur weiss ich nicht wie ich das umsetzen könnte..

Würde mich freuen wenn mir jemand dabei behilflich sein könnte, ist nämlich ein Problem mit dem ich mich schon was länger herumschlage

Gruß
Doesel
Doesel ist offline   Mit Zitat antworten
Alt 14-03-2008, 10:26   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.147
Normalerweise sollte das Grid auf eine Änderung des DataProviders reagieren. Hast du Code für uns?
Omega Psi ist offline   Mit Zitat antworten
Alt 14-03-2008, 11:03   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2008
Beiträge: 50
sicher, ist aber etwas umfangreicher als oben geschildert (habs extra simpel gehalten)..

Application mit entsprechender Funktion
Code:
private var List:XMLListCollection;

private function onTreeChange(event:MouseEvent):void
		        {
		        	_treeView = new TreeView();
		        	_remoteService = new RemoteService();
		        	_remoteService.getList();
		        	List = AppDataModel.getInstance().warrantList;
		        	Alert.show(warrantList.toString());
		        }
RemoteService.as
Code:
import mx.collections.XMLListCollection;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;
	
	public class RemoteService
	{
		private var _service:HTTPService;
		
		//--- Konstruktor -------------------
		
		public function RemoteService()
		{
			_service = new HTTPService();
			_service.resultFormat = "e4x";
		}
 
 		//--- List -------------------

		public function getList():void
		{
			_service.addEventListener(ResultEvent.RESULT,  ListResultHandler);
			_service.url = "http://localhost/cgi-bin/list.pl";
			_service.send();		
		}
		
		private function ListResultHandler(event:ResultEvent):void
		{
			_service.removeEventListener(ResultEvent.RESULT, ListResultHandler);

			AppDataModel.getInstance().List 
						= new XMLListCollection(_service.lastResult.info.warrant as XMLList);
		}	 
	}

AppDataModel.as
Code:
import mx.collections.XMLListCollection;
	
	public class AppDataModel
	{
		//--- Konstruktor -------------------

		private static var _instance:AppDataModel;
		
 		
		public static function getInstance():AppDataModel
		{
 			if (_instance == null)
			{
				_instance = new AppDataModel;
			}
			return _instance; 
		}

		//--- List -------------------

		private var _List:XMLListCollection;

		[Bindable]
		public function set List(value:XMLListCollection):void
		{
			_List = value;
		}
		public function get List():XMLListCollection
		{
			return _List;
		}

	}
Beim ersten Lauf kommt ein Debuggerfehler, dass List null wäre, lasse ich es weiterlaufen und klicke nochmal auf das gleiche TreeElement, öffnet sich das Fenster und zeigt mir den Inhalt von List an.

Der Grundgedanke zu diesem Remote-Proxy stammt übrigens aus dem Buch "Programmieren mit Flex 2" von Chafic Kazoun & Joey Lott aus dem O'Reilly Verlag, das Grundgerüst ist von da übernommen und an meine Bedürfnisse angepasst.

Gruß
Doesel
Doesel ist offline   Mit Zitat antworten
Antwort

Lesezeichen

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



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

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele