Question

Dans mon application flex-je stocker les largeurs et VISU des colonnes dans un fichier xml. Lorsque les charges d'application lit à partir du fichier xml et définit les valeurs il colonnes selon le cas:

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();

Le problème semble réglage de la visibilité (il définit le champ visible correctement mais salit la largeur) ... Je l'ai essayé de placer après le réglage de la largeur (en dehors de la boucle) et avant la boucle ainsi. Il redimensionne les colonnes correctement si je ne fais rien avec la visibilité.

Toutes les idées?

Était-ce utile?

La solution

Ajoutez une instruction d'importation en haut de votre fichier de classe:

import mx.core.mx_internal;

remove Ensuite, en utilisant l'espace de noms mx_internal, retirez le propriétaire de la colonne, changer la largeur, puis reasign parent:

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;
    }

Cela devrait faire l'affaire (bien, il l'a fait pour nous après quelques jours de prestation de serment)

Autres conseils

est-horizontalScrollPolicy mis à faux sur la grille de données?

"Si la propriété horizontalScrollPolicy du DataGrid est faux, toutes les colonnes visibles doivent tenir dans la zone affichable et le DataGrid ne sera pas toujours honorer la largeur des colonnes si la largeur totale des colonnes est trop petit ou trop grand pour le affichable région."

http: //livedocs.adobe .com / flex / 3 / langref / mx / contrôle / dataGridClasses / DataGridColumn.html # largeur

J'ai pu le faire fonctionner en appelant la boucle ci-dessus en fonction deux fois ... la première fois ajouter les colonnes visibles, la deuxième fois, il fixe la largeur correcte. Pas la meilleure solution, mais je ne peux pas passer plus de temps là-dessus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top