Ajouter une colonne à un DataGird

Signaler
Messages postés
62
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
24 mars 2007
-
Messages postés
62
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
24 mars 2007
-
Bonjour à tous,


Voila j'aimerais rajouter une colonne à mon DataGrid qui a déjà été préalablement remplit par mon dataSet.

Est-ce possible et si oui comment fait-on ?


Merci. ;-)

7 réponses

Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Salut,


que veux-tu ajouter exactement? Des données ou est-ce que tu veux ajouter une colonnes de contrôles (images, checkbox.....)?





<hr />

@+  
Messages postés
62
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
24 mars 2007

En fait, cette colonne ne va rien contenir, je veux juste mettre de la couleur dedans.

J'ai une fonction qui initialise un tableau de 16 couleurs


private string[] CreateTabColor() {

    string[] Color = new string[] {"#FF0000","#00FF00","#0000FF","#FFFF00","#9900CC",etc...};

    return Color;

}


Puis après j'aurais aimé faire

for (int i = 0; i<=16;i++){

    MonDataGrid.Columns.Add(Color[i]);

}


C'est faisable ?
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Je ne sais pas sur quelle plate-forme tu bosses, mais tu peux ajouter une colonne à ton DataGrid (ou GridView avec VS2005). Et sur l'évènement  "Item DataBound"  (ou quelquechose comme ça) tu places ton code ci-dessus.

<hr />
@+  
Messages postés
62
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
24 mars 2007

Je suis sur VS 2003.

Et il m'indique :

La méthode surchargée correspondant le mieux à
'System.Web.UI.WebControls.DataGridColumnCollection.Add(System.Web.UI.WebControls.DataGridColumn)'
possède des arguments non valides


et


Argument '1' : impossible de convertir de 'string' en 'System.Web.UI.WebControls.DataGridColumn'
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Je pense que tu dois ajouter une colonne dans ta source de données. Renseigne toi sur http://www.csharpfr.com/

Tu devrais y trouver ton bonheur. Bon courage

<hr />
@+  
Messages postés
62
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
24 mars 2007

Ok merci, je vais aller voir sa de plus près.
Messages postés
62
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
24 mars 2007

Ok je suis aller sur le forum de csharp, il me renvoie ici, .


Voici ce qu'on m'a indiqué mais cela ne marche pas car c'est pour du WinForm. J'ai essayé de le réadapter sans trop de réussite.

privatevoid AddColumn(
Color defColor,
paramsColor[] colors)
{
  
// Add the column
   DataGridColumn col = new DataGridColumn();
       //col.Name "myCol";> je n'ai pas cette propriété

 // col.DefaultCellStyle.BackColor = defColor;
// Default backcolor =>
  col.ItemStyle.BackColor =defColor;

  // this.dataGridView.Columns.Add(col) =>
 this.DataGridCom.Columns.Add(col);

   // Fill the rows...
  //  for(int i=0; i<this.dataGridView.Rows.Count; i++)
   
for(int i=0; i<this.DataGridCom.Items.Count; i++)
  {
      
if (i == colors.Length)
break;
// Default value
      //this.dataGridView["myCol", i].Style.BackColor = colors[i];
      // Je ne peux pas appeler ma colonne puisque je n'ai pas pu la nommer

  }
}


Appelle de la méthode :
this.AddColumn(
Color.Red,
Color.Blue,
Color.Violet);

Petite légende Orange => le code indiqué
 Rouge => Ce qui est
infesable car cela n'existe pas sur webform

Noir => le code que j'ai remplacé pour l'adapter à webform


Lorsque je compile ce petit bout de code, une erreur apparait :

"Impossible de créer une instance de la classe abstraite ou de l'interface 'System.Web.UI.WebControls.DataGridColumn'"


Vous avez une petite idée ?