Ma façon préférée est de définir la couleur dans le balisage,
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" ID="lblStatus"
Text='<%# Eval("Status") %>'
ForeColor='<%# GetItemColor(Eval("Status")) %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
basé sur une méthode dans le code derrière
protected System.Drawing.Color GetForeColor(object statusObj)
{
System.Drawing.Color color = System.Drawing.Color.Black;
switch ((string)statusObj)
{
case "A": color = System.Drawing.Color.Red; break;
case "P": color = System.Drawing.Color.Green; break;
case "L": color = System.Drawing.Color.Yellow; break;
}
return color;
}
Sinon, vous pouvez mettre directement la logique dans le balisage, mais je préfère garder autant du code C# dans le fichier .cs.
De plus, asp: TemplateField vous offre plus de flexibilité que asp: BoundField.
Vous pouvez également définir la propriété BackColor pour une meilleure visibilité, mais mon favori est l'ajout d'un petit asp: Image, où la propriété ImageUrl est commuté de la même manière, entre 3 images représentant le statut.
Toutes vos questions sont très mauvaises écrites, et vous n'avez encore aucune réponse. – Aristos