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 :

Doublons dans datagrid = comportement bizarre.. [Flex4]


Sujet :

Flex

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Points : 12
    Points
    12
    Par défaut Doublons dans datagrid = comportement bizarre..
    Bonjour à tous !

    Pour faire simple :
    http://esgi-project.fr/encore-debug/encore.html

    Lorsque vous cliquez sur une chanson, celle-ci s'ajoute à la playlist.
    En cas de doublons (j'entends par la deux fois la même chanson dans la playlist) le sélecteur se balade de façon bizarre ... Je vous laisse vous faire votre idée directement sur le site.

    La datagrid du bas se remplit avec un dataprovider de type XMLList, récupéré depuis une BDD.
    La datagrid d'en haut se remplit avec un dataprovider de type ArrayCollection.

    Lorsque vous cliquez sur une ligne de celle du bas, l'événement déclenché vous conduit à une fonction qui ajoute un élément à l'ArrayCollection, avec la fonction addItem




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <mx:Canvas  x="10" y="250" width="840" height="349">
    				<mx:DataGrid id="mydataliste" x="10" y="11" width="814" height="300" 
    							 itemClick="datagrid1_liste(event)" dataProvider="{liste}" alpha="1" 
    							 selectionColor="0xFFFFFF" chromeColor="0x0000000" color="0xFFFFFF" >
    					<mx:columns>
    						<mx:DataGridColumn dataField="name" headerText="Title " backgroundColor="0x000000" />
    						<mx:DataGridColumn dataField="Artist" headerText="Artist " backgroundColor="0x000000" textAlign="center" />
    						<mx:DataGridColumn dataField="album" headerText="Album " backgroundColor="0x000000" textAlign="center" />
    						<mx:DataGridColumn dataField="duree" headerText="Length " backgroundColor="0x000000" textAlign="center" />
    					</mx:columns>
    				</mx:DataGrid>
    			</mx:Canvas>
    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
    <mx:AdvancedDataGrid id="mydatagrid" x="10" y="11" width="150" height="200" 
    							 itemClick="datagrid1_lire(event)"  dataProvider="{playlist}"   
    							 selectable="true" horizontalGridLines="false" verticalGridLines="false"  
    							 alpha="1" chromeColor="0x000000" color="0xFFFFFF" selectionMode="singleCell"
    							 headerColors="[0x000000,0x000000]" >
    					<mx:columns>
    						<mx:AdvancedDataGridColumn dataField="name" headerText="Playlist" backgroundColor="0x000000" width="40" />
    						<mx:AdvancedDataGridColumn backgroundColor="0x000000" textAlign="center" width="10"  >
    							<mx:itemRenderer>
    								<fx:Component>
    									<mx:Button icon="@Embed(source='./imgBoutton/supp.png')" click="{outerDocument.supprimer()}" />
    								</fx:Component>
    							</mx:itemRenderer>
    						</mx:AdvancedDataGridColumn>
    					</mx:columns>
    				</mx:AdvancedDataGrid>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    protected function datagrid1_liste(event:ListEvent):void
    			{
    				playlist.addItem(liste[event.rowIndex]);
    				playlist.refresh();
    			}

    Si quelqu'un peut m'éclairer ... Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Points : 118
    Points
    118
    Par défaut
    Il ne doit pas y avoir de doublon dans la datagrid.
    La solution est de créer un champ unique (type ID).
    Mais tu n'es pas obligé d'afficher ce champ bien évidement.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Points : 12
    Points
    12
    Par défaut
    Merci !
    Problème résolu !
    à chaque fois que l'utilisateur ajoute un élément à sa playlist, j'instancie une nouvelle XMList (c'est dans ce format que je récupère mes données en BDD), et je l'ajoute à mon dataprovider.
    Comme ça, même s'il s'agit du même éléments d'origine, l'objet nouvellement créé n'a pas la même référence.
    j'ai tenté en ajoutant un champ id, cela n'a rien changé..

    Merci encore

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 124
    Points : 156
    Points
    156
    Par défaut
    Hello,

    Normal qu'en ajoutant l'id ça ne fonctionne pas plus. Ta référence d'objet reste la même.
    Par contre, ta solution est un peu radicale et si ton flux XML est conséquent c'est pas très optimal.
    Ce que tu pourrais faire c'est créer un nouvel objet à partir de ta liste pour l'insérer dans ta datagrid. Il pourrait d'ailleurs être plus léger que les objets remontés si tu ne présentes pas toutes les infos dans la datagrid.

    Charles.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comportement bizarre dans dll
    Par popo dans le forum C#
    Réponses: 4
    Dernier message: 18/06/2012, 09h21
  2. Comportement bizarre dans POI
    Par bruno.wiesen dans le forum Documents
    Réponses: 1
    Dernier message: 23/05/2007, 11h04
  3. recherche de doublons dans un fichier texte
    Par portu dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 07/10/2003, 14h13
  4. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21

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