2011-01-15 4 views
1

Je voudrais ajouter un dans une cellule gridview. Plus particulièrement, la source de données est un nombre entre 1 et 7 et sur la base de ce nombre, la div doit avoir une certaine couleur d'arrière-plan et le texte doit être un certain mot. Par exemple, si la donnée est 1, la div devrait être jaune et le mot devrait être ensoleillé.gridview itemtemplate

Quelle est la meilleure façon de faire cela?

Merci.

Répondre

1

Ajouter ce à RowDataBound

GridView1_RowDataBound vide protégé (expéditeur d'objet, GridViewRowEventArgs e) {

if (e.Row.RowType == DataControlRowType.DataRow) 
{ 
    int value = (int)DataBinder.Eval(e.Row.DataItem, e.Row.Cells[2].Text); 
    // e.Row.Cells[2] references the cell value you want to use 
    if (value < 100) 
    { 
     e.Row.Cells[2].BackColor = Color.FromName("#c6efce"); 
    } 
    if ((value >= 100) && (value < 500)) 
    { 
     e.Row.Cells[2].BackColor = Color.FromName("#ffeb9c"); 
    } 

} 

}

+0

La valeur lignée int = (int) DataBinder.Eval (e.Row.DataItem, e.Row.Cells [2] .Text); le plus être: int valeur = (int) DataBinder.Eval (e.Row.DataItem, "YourFieldHere"); – Piyey

1

Vous pouvez le changer sur l'événement RowDataBound du GridView comme comme expliqué dans

GridView : Working with TemplateFields

ou

Vous pouvez spécifier les détails dans votre requête comme

select 
    case when [number] = 1 then 'Sunny' 
     when [number] = 2 then 'Rainy' 
     end as [DisplayWord], 
    case when [number] = 1 then 'Yellow' 
     when [number] = 2 then 'Red' 
     end as [DisplayColor] 
from [YourTable] 

et Bind

Je préfère r la seconde méthode

Questions connexes