Löschen / Ersetzen Eines Knotens in E4X (AS3 - Flex)

Baue ich eine Liste/raster-Steuerelement in einem Flex Anwendung und verwenden Sie es in einem .NET web-Anwendung. Um eine wirklich lange Geschichte kurz, ich bin immer XML aus webservice von serialisierten Objekten. Ich habe eine Seite zu begrenzen, wie viele Dinge auf einer Seite. Ich habe eine Daten-grid und machte es Seite, ungefähr auf allen Seiten und Griff einige grundlegende Filterung.

In Bezug auf die paging-ich bin mit einem Wörterbuch eingegeben auf der Seite und speichern Sie die XML-Seite. Diese Weise, wenn ein Benutzer kommt zurück, um eine Seite, die ich gespeichert hab in diesem Wörterbuch, das ich greifen kann, die XML-Daten aus lokalen Speicher anstelle des Schlagens des webservice. Im Grunde bin ich das caching der abgerufenen Daten von jedem Aufruf der webservice für eine Seite von Daten.

Gibt es mehrere Dinge, die ablaufen können, mein cache. Filtern und Sortieren sind der Hauptgrund. Allerdings kann ein Benutzer Bearbeiten eine Zeile von Daten in das Netz, öffnen Sie einen editor. Die Daten, die Sie Bearbeiten konnte, dass die Daten in der Zeile angezeigt werden abgestanden. Ich könnte leicht gehen Sie zu der webservice-und die ganze Seite von Daten, aber da die Seite Größe wird zur Laufzeit festgelegt, ich konnte sein Blick auf eine große Menge von Datensätzen abzurufen.

Lassen Sie mich nun zum Kern des Problems, die ich erlebe. Um zu verhindern, dass sich die ganze Seite, die Daten wieder mache ich einen Aufruf der webservice-Fragen, für die vollständig aktualisierte Eintrag (der editor verarbeitet das speichern Ihrer Daten).

Da bin ich mit benutzerdefinierten Objekte, die ich brauche, um zu serialisieren, die auf dem server in XML (dies wird behandelt, die bereits für die anderen Teile unserer software). Alle Daten werden über XML e4x. Der cache im Wörterbuch gespeichert ist, als ein XMLList-Objekt.

Nun lassen Sie mich Ihnen zeigen, dass mein code...

var idOfReplacee:String = this._WebService.GetSingleModelXml.lastResult.*[0].*[0].@Id;
var xmlToReplace:XMLList = this._DataPages[this._Options.PageIndex].Data.(@Id == idOfReplacee);

if(xmlToReplace.length() > 0)
{
    delete (this._DataPages[this._Options.PageIndex].Data.(@Id == idOfReplacee)[0]);
    this._DataPages[this._Options.PageIndex].Data += this._WebService.GetSingleModelXml.lastResult.*[0].*[0];
}

Grundsätzlich, ich bekomme die id des Knoten I wollen, um zu ersetzen. Dann finde ich es in der cache-Data-Eigenschaft (XMLList). Ich sicher, dass es existiert, da der filter in der zweiten Zeile gibt den XMLList.

Das problem, das ich habe, ist mit der Zeile löschen. Ich kann nicht machen, dass die Zeile löschen, die Knoten aus der Liste. Die Zeile nach der Zeile löschen funktioniert. Ich habe die Knoten der Liste.

Wie kann ich ersetzen oder zu löschen, Knoten (d.h. die Knoten, die finde ich von der filter-Anweisung aus der .Data-Eigenschaft des cache)???

Hoffentlich die Unterstriche für alle meine Variablen bleiben nicht entgangen, wenn dieser gepostet wird! ansonsten this.&#95 == this._

InformationsquelleAutor Mike G | 2008-08-14

Schreibe einen Kommentar