IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

AdvancedDataGrid avec Array capricieu


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de supernova
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 447
    Par défaut AdvancedDataGrid avec Array capricieu
    Bonjour le forum,

    Je vous soumet ici un problème ..

    J'utilise dans mon appli java/flex une structure de type AdvancedDataGrid alimenté par un ArrayCollection et dont les colonnes sont gérés par un Array :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    ..
    [Bindable]
    public  var collection:ArrayCollection = new ArrayCollection;
    ...
     
     
    var adv:AdvancedDataGrid = new AdvancedDataGrid
    var colArray:Array = new Array;
    var column:AdvancedDataGridColumn = new AdvancedDataGridColumn();
    column.headerText = "colonne A";
    column.dataField = colA;
    colArray.push(column);
    adv.columns = colArray;
    adv.dataProvider = collection;
    //ajout au panel
    monPanel.addChild(adv);
    Jusque là tout va bien..

    Le problème c'est lorsque je change les données de mon dataProvider plus loin dans le code..


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    collection = new ArrayCollection
    .....  collection est maintenant alimenté avec colB
    ........
     
    var colArray:Array = new Array;
    var column:AdvancedDataGridColumn = new AdvancedDataGridColumn();
    column.headerText = "colonne B";
    column.dataField = colB;
    colArray.push(column);
    adv.columns = colArray;
    adv.dataProvider = collection;
    et bien là les données ont disparues et l'ancienne colonne est conservé (colA)..


    J'espère avoir bien expliqué mon soucis..

    Merci d'avance pour le moindre embryon de début d'indice..

  2. #2
    Membre expérimenté Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Par défaut
    Bonjour, a mon avis ton probleme vien de la variable colArray

    je l'aurai mise comme variable de classe et non pas local si j'ai bien compris ton code, j'ai l'impression que tu l'initialise à chaque fois donc c normale que tu perde tes infos

    Bon courage

    Samy

  3. #3
    Membre chevronné Avatar de supernova
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 447
    Par défaut
    Merci Samy tes réponses sont toujours de bons conseils ..

    En fait ce que je voudrais c'est que les données colB remplace celles de colA, mais je me retrouve avec juste l'entete de colA alors que j'attend colB avec ses données..

    J'ai mis mon colArray en variable de classe mais c'est pas mieux..

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Par défaut
    1-Non il ne sert à rien d'étendre la portée de colArray. Puisqu'il est référencé par adv.columns il ne sera pas détruit par le GC.

    2-Je trouve bizarre de récréer une colonne pour remplacer celle qui existe. Pourquoi ne pas simplement modifier le titre et le dataField de la colonne existante ?

  5. #5
    Membre chevronné Avatar de supernova
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 447
    Par défaut
    bjr Jylaxx,

    Le principe est de réaffecter un nouveau tableau de colonnes pour réinitialiser le contenu du tableau, mais il semble conserver les valeurs précédantes. Peut on forcer le gc à supprimer ces références?

    Quelle est la portée de "Bindable" pour les variables ?

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Par défaut
    La doc dit :
    If you want to change the set of columns, you must get this Array, make modifications to the columns and order of columns in the Array, and then assign the new Array to the columns property. This is because the AdvancedDataGrid control returns a copy of the Array of columns, not a reference, and therefore cannot detect changes to the copy.
    Je pense que ceci peut peut-être expliquer ce que tu observes (bien que je m'expliques pas trop le cas où tu réaffectes de nouvelles colonnes...)

    Quelle est la portée de "Bindable" pour les variables ?
    Je ne suis pas certain de comprendre la question. La notion de portée est indépendante.

Discussions similaires

  1. [MySQL] Problème avec array
    Par Dantahoua dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/03/2007, 22h53
  2. [VB-Excel]problème de syntaxe avec Array
    Par DomBourti dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/07/2006, 21h30
  3. Probleme de type avec Array
    Par BECHE dans le forum Langage
    Réponses: 5
    Dernier message: 30/03/2006, 23h05
  4. Petit probleme avec Arrays.Sort(...)
    Par Seth77 dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 15/01/2006, 12h48
  5. création de tableaux avec Array() et élément 'fantome'
    Par Talieth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/11/2005, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo