| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #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 |
| | |
| | #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());
} 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;
}
} 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 |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |