Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-06-2008, 13:00   #1 (permalink)
Neuer User
 
Benutzerbild von TomTom101
 
Registriert seit: Jun 2002
Ort: München
Beiträge: 50
DataGrid, dataProvider und E4X

Hi,

habe ein seltsames Problem eines sich auf mysteriöse Weise verändernden dataProviders eines DataGrids.
Mit von der Partie sind:

Code:
<mx:XML id="xml" xmlns="" source="data.xml" format="e4x"/>
und ein DataGrid
Code:
<mx:DataGrid id="grdResult" dataProvider="{xml.nodeFoo.bar.name}"/>
eine Funktion soll nun die Daten des grids filter (bzw. neu zuweisen/ändern):

Code:
public function filter():void {
// xml ist zu diesem Zeitpunkt dataProvider des Datagrids grdResult
// Das Ergebnis soll nun gefiltert und neu zugewiesen werden
	var nodes:XMLList = new XMLList(xml.nodeFoo.bar.nochMehr.(text()=="bla"));
	var newRslt:XMLListCollection = new XMLListCollection;
// da ich jeweils den parent eines jeden gefunden nodes brauche, muss ich darüber iterieren (wenn es nur ein parentS() gäbe ...
	for each(var node:XML in nodes) {
		var newNode:XML = node.parent();
// dieses addItem() hat zur Folge, dass sich das ursprüngliche XML verändert (<mx:XML id="xml") und einen(!) von zwei gefundenen nodes zusätzlich anhängt
		newRslt.addItem(newNode);
	}

	grdResult.dataProvider = newRslt;
}
Ich kann mir überhaupt nicht erklären, welche Verbindung zu den XML Daten besteht,
Code:
newRslt
ist ja in keinster Weise eine Referenz zu diesem XML Objekt, oder etwa doch?

Kann mir jemand erklären, was hier vor sich geht?

Herzlichsten Dank für Eure Hilfe und Ideen!

Grüße,
Thomas
TomTom101 ist offline   Mit Zitat antworten
Alt 25-06-2008, 14:17   #2 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
afaik ist das ähnlich wie im DOM, dass ein Element nur ein Parent haben darf.
Hast du also ein Element X innerhalb des Objekts Y und fügst dieses X einem Objekt Z hinzu, wird es aus Y herausgenommen.
Ich weiß nicht, inwiefern das auf E4X zutrifft, da ich einen solchen Fall noch nie hatte, ich könnte es mir aber gut vorstellen.
pokepika ist offline   Mit Zitat antworten
Alt 25-06-2008, 16:23   #3 (permalink)
Neuer User
 
Benutzerbild von TomTom101
 
Registriert seit: Jun 2002
Ort: München
Beiträge: 50
Thumbs up Gelöst!

Ich konnte das Problem nun lösen, wenngleich auch noch nicht komplett verstehen:

Wenn man anstatt des gefunden nodes nur eine Kopie an die neue XMLListCollection anhängt, funktioniert die Sache wie erwartet:

Code:
newRslt.addItem(newNode);
besser:
Code:
newRslt.addItem(newNode.copy());
Merci fürs Mitdenken!

Viele Grüße,
Thomas
TomTom101 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 10:06 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele