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

ASP.NET Discussion :

Colonne dynamique dans DataGrid


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2004
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 91
    Par défaut Colonne dynamique dans DataGrid
    Hello,

    Je souhaite ajouter une colonne de manière dynamique dans un DataGrid jusque là pas de pb.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    BoundColumn column = new BoundColumn();
    column.DataField = "MonChamp";
    column.HeaderText = MonHeader";
    MaDataGrid.Columns.Add(column);
    Seulement je souhaite complexifié un peu la chose en modifiant l'aspect de la colonne en fonction des valeurs de MonChamp.
    Je voudrais que la cellule soit :
    - Rouge pour une valeur à 0.
    - Orange pour 0 < valeur < 100
    - Vert pour une valeur = 100
    Et là je suis un peu perdu.
    Faut il que je suppose qu'il faut que j'utilise les TemplateColumn mais je ne vois pas bien comment dans la mesure ou je ne suis pas un spécialiste des datagrid.
    Quelqu'un a t'il déjà eu cette problématique ?
    Merci par avance.

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2004
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 91
    Par défaut
    Il suffit de créer une nouvelle classe qui implémente ITemplate.
    Puis d'utiliser cette classe lors de l'ajout dans la datagrid.
    Il est possible de mettre le comprtement que l'on souhaite sur le classe en question lors du DataBinding

    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
    17
    18
     
    public class LabelTemplate : ITemplate
    {
    public void InstantiateIn(System.Web.UI.Control container)
    {
    Label lb = new Label();
    lb.DataBinding += new System.EventHandler(this.BindLabel);
    container.Controls.Add(lb);
    }
    private void BindLabel(object sender, System.EventArgs e)
    {
    Label lb = (Label)sender;
    DataGridItem container = (DataGridItem)lb.NamingContainer;
    lb.Text = DataBinder.Eval(container.DataItem, "MonChamp").ToString();
    if (DataBinder.Eval(container.DataItem, "MonChamp").ToString().Contains( "A")) { lb.BackColor = System.Drawing.Color.Blue;	}
    }
     
    }
    Utilisation pour l'ajout dans la DataGrid
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    TemplateColumn tc = new TemplateColumn();
    tc.HeaderText = "MonHeader";
    tc.ItemTemplate = new LabelTemplate();
    DataGridListeEntites.Columns.Add(tc);
    CQFD

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

Discussions similaires

  1. [IBATIS] nom de colonne dynamique dans le mapping
    Par jgfa9 dans le forum Persistance des données
    Réponses: 1
    Dernier message: 02/01/2008, 14h01
  2. inserer une colonne dynamique dans une table
    Par natacha5 dans le forum Access
    Réponses: 12
    Dernier message: 04/07/2007, 16h47
  3. nombre de colonnes dynamiques dans une Datagrid
    Par khayri dans le forum Struts 1
    Réponses: 2
    Dernier message: 04/06/2007, 21h14
  4. Colonnes dynamiques dans Rave report
    Par omarkrachni dans le forum Rave
    Réponses: 1
    Dernier message: 10/05/2005, 18h33

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