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 :

dataProvider et removeItemAt


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 179
    Par défaut dataProvider et removeItemAt
    Bonjour à tous
    Après quelques recherches sur la toile, je me rends compte que ce problème n'est pas nouveau, et je n'ai pourtant trouvé aucune réponse.

    J'ai une liste avec un ArrayCollection d'objets comme provider. (avec tri et filtre).
    Tout fonctionne très bien, le addItem, le filtre, le tri, mais impossible de retirer une ligne de la liste !!! le removeItemAt n'a aucun effet !!!! même le removeAll n'a aucun effet.

    Quelqu'un a-t-il déjà eu ce problème et surtout existe-t-il une solution.

    Mr.Bricolo bonjour :
    En fait, j'ai contourné le problème en ajoutant une clé à l'objet de la collection, clé booléenne qui me dit si l'objet est valide ou non. Dans le filtre je teste cette clé et rejette les lignes invalides. Un coup de refresh sur la collection et le tour est joué. Même opération pour mettre le fichier correspondant au ArrayCollection à jour, parcours du tableau et suppression des enregistrements dont la fameuse clé est 'false'.
    J'aurais bien aimé une solution un peu plus .... un peu moins ..... bricolage

    Toutes les informations sur ce sujet seraient les bienvenues.
    Merci de vos réponses.
    YC

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    Salut,

    as-tu un petit bout de code stp ?
    Est-ce que ça ne serait pas un problème de référence ou quoi que ce soit qui fait que tu ne pointerais pas sur le bon arrayCollection : le filtre affiche une "vue" de l'arrayCollection, sans en modifier le source.
    Peut-être pointes-tu sur un index dans ta vue, qui ne correspond à aucun index dans le source ? Sur quel arrayCollection te bases-tu ?

  3. #3
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2012
    Messages : 77
    Par défaut
    J'ai un problème similaire, voilà pourquoi je relance le sujet.

    J'ai donc une liste dans laquelle j'arrive parfaitement à ajouter un item ou à en modifier un, mais pour la suppression, c'est moins simple.

    Par exemple, dans ma liste j'ai 3 items.
    0 : Rouge
    1 : Bleu
    2 : Vert

    Si je supprime l'item à l'index 0, tout fonctionne. Mais, si par la suite j'essaye de supprimer l'item correspondant à "Vert", ça ne fonctionne pas car je lui envois l'index 2 alors que la liste a tout rangé entre temps et se présente donc :
    0 : Bleu
    1 : Vert

    Je comprend bien le problème (à moins que je ne sois à côté de la plaque, fort possible aussi!) mais je ne vois pas tellement la solution par rapport à mon minuscule bout de code:

    //après avoir cliqué sur le "Oui" de la boite d'alerte me demandant si je veux supprimer l'objet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private function alertCloseHandlerSupprimer(event:CloseEvent):void
    {			
    	if (event.detail==Alert.YES)
                  _Dossier.C_LISTE_DEVIS.dataProvider.removeItemAt(_index);		
    }
    L'erreur bien sûr est
    RangeError: L'index 2 spécifié est hors limites.
    Je dois mettre à jour _index j'imagine, pour qu'il corresponde à la réalité des index de la grille, mais je ne vois pas bien comment...

  4. #4
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    Salut,

    oui tout à fait. Où est-il défini par contre ? Aurais-tu un bout de code stp ?

Discussions similaires

  1. List dataProvider et itemRenderer
    Par Watier_53 dans le forum Flex
    Réponses: 12
    Dernier message: 16/04/2008, 11h43
  2. [Visual Web] DataProvider(s) et NB6
    Par laurent4x dans le forum NetBeans
    Réponses: 5
    Dernier message: 16/01/2008, 14h28
  3. Datagrid avec dataprovider complexe
    Par Soulghard dans le forum Flex
    Réponses: 5
    Dernier message: 30/10/2007, 17h08
  4. [BO 5.1.6][VBA] Récupérer le Dataprovider
    Par CapFi dans le forum SDK
    Réponses: 1
    Dernier message: 05/10/2007, 11h34
  5. [Visual Web] DataProvider before insert
    Par eponette dans le forum NetBeans
    Réponses: 4
    Dernier message: 19/03/2007, 17h00

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