Ajouter une colonne à un datagrid [Résolu]

Messages postés
63
Date d'inscription
mercredi 21 juin 2006
Dernière intervention
24 mars 2007
- 7 août 2006 à 15:33 - Dernière réponse :
Messages postés
63
Date d'inscription
mercredi 21 juin 2006
Dernière intervention
24 mars 2007
- 9 août 2006 à 12:09
Voila j'ai déjà poster sur le site d'asp.fr qui m'on renvoyait ici, donc je repose ma question.


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 ?


En fait, j'ai déjà réalisé ceci mais cela ne marche pas


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]);

}


Cela permet de mettre une couleur différentes dans la colonne que je viens de créer et pour chaque ligne de mon DataGrid.


Merci.d'avance ;-)
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
- 9 août 2006 à 11:48
3
Merci
Ben ici on parle pas de webForm, alors je sias pas trop comment je pourrais t'aider...
Si c'est comme en WinForm DataGridColumn est une classe Abstaite de base pour toute les colonnes, on ne peut donc pas l'instancier directement, il faut le faire via un type non-abstait comme par exemple DataGridTextBox (je dis ça de tête, je ne suis pas tout à fait sûr du nom de la classe). Ca donnerait donc quelque chose comme :

DataGridColumn dgc = new DataGridTextBox();

En plus, tu travailles avec le framework 1.1, et je dois t'avouer que depuis que je suis passé au 2, je n'ai plus touché au 1.1. Et le DataGrid(View) est justement un composant qui change relativement beaucoup d'une version à l'autre...

VC# forever

Merci cs_Bidou 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_Bidou
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
- 8 août 2006 à 19:29
0
Merci
Salut,
Voici un petit exemple rapidement fait avec VisualStudio 2005 & Framework 2 => DataGridView :

private
void AddColumn(
Color defColor,
params
Color[] colors)
{
  
// Add the column
   DataGridViewColumn col =
new
DataGridViewTextBoxColumn();
   col.Name =
"myCol";
   col.DefaultCellStyle.BackColor = defColor;
// Default backcolor
   this.dataGridView.Columns.Add(col)

   // Fill the rows...
   for(
int i=0; i<
this.dataGridView.Rows.Count; i++)
  {
      
if (i == colors.Length)
break;
// Default value
      this.dataGridView[
"myCol", i].Style.BackColor = colors[i];
  }
}

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

Les deux premières cellules seront donc bleue respectivement violette, le reste des lignes, s'il y en a, sera dans la couleur par défaut, rouge.
VC# forever
Commenter la réponse de cs_Bidou
Messages postés
63
Date d'inscription
mercredi 21 juin 2006
Dernière intervention
24 mars 2007
- 9 août 2006 à 10:47
0
Merci
Merci pour ta réponse mais j'utilise Viusal Studio Net 2002 donc
framework 1.1, je crois et donc je n'ai pas de DataGridView mais j'ai
essayé d'exporter ta solution mais je rencontre un petit problème.


Je fais

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 => ton code

               
          Rouge => Ce qui est
infesable car cela n'existe pas sur ma version

               
    Noir => le code que j'ai remplacé pour l'adapter
avec ma version
Commenter la réponse de adressprov
Messages postés
63
Date d'inscription
mercredi 21 juin 2006
Dernière intervention
24 mars 2007
- 9 août 2006 à 11:00
0
Merci
A oui, j'ai oublié de t'indiquer que 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'"
Commenter la réponse de adressprov
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
- 9 août 2006 à 11:07
0
Merci
Euh, mais tu es sur un projet web ou sur un projet winForm ??? Parce que ici c'est du C# en WinForm
Pour les questions web, il faut aller poster ta question sur ce forum.

VC# forever
Commenter la réponse de cs_Bidou
Messages postés
63
Date d'inscription
mercredi 21 juin 2006
Dernière intervention
24 mars 2007
- 9 août 2006 à 11:36
0
Merci
En effet je suis sous WebForm, j'ai déjà exposé mon problème là bas mais ils m'ont dit de venir ici

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.

Je vais pas encore poster ma question là bas :-(
Commenter la réponse de adressprov
Messages postés
63
Date d'inscription
mercredi 21 juin 2006
Dernière intervention
24 mars 2007
- 9 août 2006 à 12:09
0
Merci
Ok merci de tes conseils.
Je vais retourner sur le forum aspfr car DataGridTextBox() n'existe pas peut être qu'il s'en seront un peu plus.
Commenter la réponse de adressprov

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.