Frage

In meiner Flex App speichere ich die Breite und es Sichtbarkeit von Spalten in einer XML-Datei. Wenn die App lädt liest sie aus der XML-Datei und setzt er Spalten Werte als anwendbar:

for(i = 0; i < columnsOrder.length; i++){
    newOrder[i] = myDG.columns[Number(columnsOrder[i]) - 1];
    newOrder[i].visible = (Number(columnsVisiblity[i]) == 1);
    newOrder[i].width = Number(columnsWidth[i]);
}
myDG.columns = newOrder;
myDG.invalidateList();

erscheint das Problem die Sichtbarkeit zu Einstellung (es das sichtbare Feld wird richtig, aber die Breite vermasselt) ... Ich habe versucht Einstellung es nach dem Breiten Einstellung (außerhalb der Schleife) und vor der Schleife als auch. Es ändert die Größe der Spalten richtig, wenn ich nichts mit der Sichtbarkeit.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Fügen Sie eine Import-Anweisung an der Spitze der Klasse-Datei:

Import mx.core.mx_internal;

Dann das mx_internal Namespace verwenden, entfernen Sie den Besitzer der Spalte, die Breite ändern und dann reasign die Eltern:

public static function resizeColumn(col:DataGridColumn, size:int):void
    {
        var owner:* = col.mx_internal::owner
        col.mx_internal::owner = null;

        col.width = size;

        col.mx_internal::owner = owner;
    }

Dies sollte den Trick tun (na ja, es hat für uns nach ein paar Tagen der Vereidigung)

Andere Tipps

Sind Sie horizontalScrollPolicy- auf dem Datenraster auf false gesetzt?

"Wenn der horizontalScrollPolicy- Eigenschaft des Datagrid ist falsch, alle sichtbaren Spalten im darstellbaren Bereich passen muss, und das Datagrid wird nicht immer die Breite der Spalten ehrt, wenn die gesamte Breite der Spalten zu klein oder zu groß für die darstellbaren Bereich."

http: //livedocs.adobe .com / flex / 3 / langref / mx / Kontrollen / dataGridClasses / DataGridColumn.html # Breite

Ich kann es zweimal durch den Aufruf der oben Schleife in einer Funktion zu arbeiten ... das erste Mal die sichtbaren Spalten, das zweite Mal hinzufügen, setzt sich die richtige Breite. Nicht die beste Lösung, aber ich kann nicht noch mehr Zeit für sie.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top