2 Stimmen

Wie kann man die Hintergrundfarbe einer Datengitterzeile dynamisch ändern?

Es scheint, dass es verschiedene Hacks gibt, um die Hintergrundfarbe der Zeile eines Datengitters zu ändern, aber alle scheinen zur Renderzeit zu passieren.

Siehe: Festlegen der Hintergrundfarbe für Datentabellenzeilen in Adobe Flex

Ich habe eine Datentabelle, wo ich brauche, um Zeile Farben zu rot dann zurück zu normal häufig basierend auf Änderungen an der gebundenen ArrayCollection ändern. Ich bin also auf der Suche nach einer Möglichkeit, die Zeilenfarben dynamisch zu ändern.

Kann jemand helfen? Da die Änderungen häufig stattfinden, wäre es natürlich schön, wenn die Änderung der Hintergrundfarbe der Zeile nicht so teuer wäre, aber man darf nicht zu wählerisch sein.

3voto

houser2112 Punkte 164

Sie müssen eine benutzerdefinierte Komponente schreiben, ich werde den bereinigten Code aus unserem Projekt einfügen. Irgendwo in Ihrem ActionScript, müssen Sie dies für jede Spalte zu schreiben:

column.itemRenderer = new ClassFactory(CellRenderer);

Hier ist die benutzerdefinierte Klasse:

public class CellRenderer extends Label {
    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { 
        super.updateDisplayList(unscaledWidth, unscaledHeight); 
        var g:Graphics = graphics;
        g.clear();
        for each(var object:Object in arrayCollection) {
            if (object.rowIndex == 0) { //or whatever your conditions are
                g.beginFill(0xFFFFC0); 
                g.drawRect(0, 0, unscaledWidth, unscaledHeight);
                g.endFill(); 
            }
        } 
    } 
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X