Tri sur un datagridview

cs_rangdalf Messages postés 8 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 21 octobre 2007 - 8 déc. 2006 à 10:35
shitboypark Messages postés 52 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 12 janvier 2007 - 10 janv. 2007 à 17:52
Bonjour,


Je développe une application winforms en C# 2.0

J'ai un datagridview lié à un datatable rempli de données.

J'ai une fonction qui rajoute une colonne image
(DataGridViewImageColumn) à mon datagridview et qui ajoute une image
(flèche haut, bas et égale).


Tout va bien tout s'affiche!

Le problème est lorsque je veux trier une colonne (n'importe laquelle)
mon image (et plus généralement toutes mes colonnes ajoutées et
remplies par code) se vident. La colonne image affiche une croix rouge
et toutes les autres colonnes sont vides.

Peut être est ce du au fait que le tri d'un datagridview se fait au
niveau du datasource? et non pas sur les données directement?


Dans ce cas existe t il une source de données que l'on peut gérer et qui permet l'ajout de colonne (de type image ou autre)?


Je suppose qu'il y a un moyen pour permettre le tri et la persistance des données mais je ne le connais pas.

Merci pour vos réponses!

4 réponses

cs_rangdalf Messages postés 8 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 21 octobre 2007
9 déc. 2006 à 13:58
Personne? 
0
shitboypark Messages postés 52 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 12 janvier 2007
9 janv. 2007 à 16:50
Bonjour,

Vous avez trouvé une solution à votre problème ?

J'ai exactement le même.. (les colonnes qui se vident lors du tri..)

Qu'avez-vous fait pour remédier à ce problème ?

D'avance merci.

adri-x-_-en_cours_de_reprogrammation-_-
0
cs_rangdalf Messages postés 8 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 21 octobre 2007
9 janv. 2007 à 17:03
Salut,

Oui j'ai enfin trouvé comment résoudre mon problème!
C'était du au fait que j'utilisais 2 sources de données différentes.
Pour résoudre le probleme il suffit de binder tes sources de données dans un datagridview dont tu auras défini les colonnes:
Ex:
dataGridView1.Columns.AddRange(
                                new DataGridViewImageColumn(),
                                new DataGridViewTextBoxColumn(),
                                new DataGridViewTextBoxColumn(),
                                new DataGridViewTextBoxColumn(),
                                new DataGridViewTextBoxColumn(),
                                new DataGridViewTextBoxColumn(),
                                new DataGridViewTextBoxColumn(),
                                new DataGridViewTextBoxColumn(),
                                new DataGridViewTextBoxColumn()
                                );

                    dataGridView1.Columns[0].Name = "MaColonneImage";
                    dataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.Automatic;
                    dataGridView1.Columns[1].Name = "Nom";
                    dataGridView1.Columns[2].Name = "Prénom";
                .... faire de meme pour toutes tes colones

Ensuite tu dois ecrire ligne par ligne dans ton datagridview.
dataGridView1.Rows.Add(...) les infos à mettre dans ton datagridview

Bon courage!
C'est long!
0
shitboypark Messages postés 52 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 12 janvier 2007
10 janv. 2007 à 17:52
Bonjour!
Merci de ta réponse rapide,
mais la solution ne convient pas.
Ma datagridview est alimentée par un seul datasource (pas comme toi.)
La iList renvoyée par l'objet connecté au datasource utilise une instance CollectionView de CollectionClasses.

Le tri sur les colonnes se passe bien, mais j'ai remarqué que lorsqu'une cellule est vide dans une ligne et qu'on trie en cliquant sur le header de la colonne, on perd une partie des données de la dernière ligne. A chaque nouveau tri, on perd d'autres données d'autres ligne...

Si quelqu'un a eu le même problème...

%Merci ;)

adri-x-_-en_cours_de_reprogrammation-_-
0
Rejoignez-nous