Modifier les valeurs dans un datagrid

Résolu
Signaler
Messages postés
135
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
11 mai 2007
-
Messages postés
135
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
11 mai 2007
-
Bonjour,


Dans mon application, j'ai une table que j'affiche dans un datagrid.

Pour les 2 premieres colonnes, j'ai des valeurs entiere ( 1 ou 2).

J'aimerais changer ces valeurs en remplacent 1 par Vrai , et 2 par faux mais sans modifier les valeurs de la table.


Comment puis-je faire ?


Dois je utiliser les propriétés d'un datatable ou d'un dataset pour changer ces valeurs ?


Please help ....

31 réponses

Messages postés
135
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
11 mai 2007
1
J'arrive a récupérer la valeur d'une cellule du datagrid  :

this.MonDataGrid[0,1].ToString() ;     // Recupere la valeur de la cellule ligne 1 colonne 1


mais comment faire pour modifier cette valeur dans le datagrid sans la modifier dans la base ?
Messages postés
135
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
11 mai 2007
1
Y a t-il un spécialiste des datagrid ou dataset ? ? car la je nage . . .


Ah moins que ce qoit un probleme de requete Sql , il me semble qu'on
peu dire Quand on trouve 1 dans une colonne on met False ou 2 on met
true . .  .enfin il me semble . .
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Membre
Dernière intervention
20 juin 2013
58
kurky> Pour ton information, on ne peut pas changer l'architecture d'un programme comme on change de chaussette. Passer d'une application de .NET1 en .NET2 ça engendre des coûts... Et pas toute les entreprises peuvent se le permettre...

brute> si tu passes passe de "1" à false, faut bien se rendre compte que tu passes de int à bool (voire de int à string). Or une colonne ne peut pas contenir plusieurs type. Tu seras obligé de mettre tout des strings.

Le mieux dans ton cas je pense, c'est de créer un DataSet (ou DataTable), charger les data de ta DataBase dans cet object, puis appliquer les modifications que tu veux sur cette object, et pour finir le binder à ton dataGrid.

Si tu as un DataTable qui s'appelle dt, tu peux faire quelques chose de ce genre là (vite tapé) :

foreach(DataRow dr in dt.Rows)
{
   object[] newVals = newobject[dr.ItemArray.Length];
   for(int i=0; i<dr.ItemArray.Length; i++)
   {
      if(dr.ItemArray[i].ToString() == "1") newVals[i] = "false";
     else newVals[i] = dr.ItemArray[i];
   }
   dr.ItemArray = newVals;
}

Maintenant, c'est une solution qui marche, mais de la à dire que c'est la meilleur... je ne pense pas.
Peut-être que ça serait intéressant de passer par une View.

<hr size="2" />VC# forever
Messages postés
135
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
11 mai 2007
1
Merci beaucoup pour ces infos bidou . .


ca pourrai marché sauf que j'ai un type de colonne Decimal et je ne peu
pas mettre de String. Peut etre en utilisant une View ? ?
Messages postés
135
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
11 mai 2007
1
sur quelle colonne porte ta méthode ?

car j'ai 6 colonnes mais seulement 2 a traiter de la sorte !!??
Messages postés
135
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
11 mai 2007
1
Je viens de me rendre compte d'un truc . . . lorsque j'utilise ma
requete ci dessus et que je met : maColonne1 = NomColonne1 , j'ai une
erreur de Type, car le type de maColonne1 est décimal et moi je veux y
mettre du String.

Par contre lorsque jutilise un autre nom de colonne en Alias, ca marche
mais ma premiere colonne maColonne1 s'affiche toujours mais avec des
valeurs NULL ma nouvelle colonne est crée a la fin des autres colonnes
dans le datagrid.


J'aimerai que ma nouvelle colonne avec les valeurs String soit en lieu et place de maColonne1 . . . . Comment faire ? ? ?
Messages postés
135
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
11 mai 2007
1
Mon probleme est maintenant de Supprimer une colonne du datagrid et d'en déplacer une autre . . .


Y a til des professionnels ? ?
Messages postés
135
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
11 mai 2007
1
Merci pour le lien .


Je vais étudier ca !
Messages postés
135
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
11 mai 2007
1
C'est presque ca,

j'arrive a supprimer la colonne qui m'embete :

DataGridTableStyle tableStyle = new DataGridTableStyle();

tableStyle.MappingName = this.dtSource.TableName;

this.dataGrid.TableStyles.Add(tableStyle);


this.dataGrid.TableStyles[0].AlternatingBackColor = this.dataGridPerso.AlternatingBackColor ;

je continue avec les propriétés que je peux récupérer de mon datagridPerso (celui qui est tout paramétré)

no problem

, par contre j'avais personnalisé mes datagrid et j'aimerai reprendre
l'ensemble des propriétés du datagrid pour l'utiliser avec le dataGrid
tableStyle.

Par exemple, La propriété ParentRowsBackColor du DataGrid n'apparait pas dans les propriétés de la TableStyle . . .


Comment faire ? ? car j'ai beau chercher mais je ne trouve pas cette propriétés dans le dataGridTableStyle.
Messages postés
135
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
11 mai 2007
1
j'ai oublié de mettre la ligne qui me permet de supprimer la colonne :


this.dataGrid.TableStyles[0].GridColumnStyles.RemoveAt(0);
Messages postés
135
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
11 mai 2007
1
Je ne sais pas comment déplacer une colonne.

la derniere colonne j'aimerai la mettre en premier .


Oui mais , comment Faire ?