値に依存するだけのスタイルにしたい場合は、Jquery または javaScript を使用して、クライアント側で行うことをお勧めします。また、 RowDataBound
で行うのではなく、クライアント側で行うため、パフォーマンスに影響しません。
コード: クライアント側の使用- (これはもっとお勧めします)
ここでは、クラスの値に応じて多くの条件を設定できます。余分なサーバー側のコードを記述する必要はありません。
$(document).ready(function () {
$(".myGvClass").find("td").each(function () {
if ($(this).text() == "Class B") {
$(this).css("color", "Red");
}
if ($(this).text() == "Class A") {
$(this).css("color", "Blue");
}
if ($(this).text() == "Class C") {
$(this).css("color", "green");
}
// ..... and so on
});
HTML マークアップ:
<asp:GridView ID="GridView1" runat="server" CssClass="myGvClass">
</asp:GridView>
分離コード:
GridView1.DataSource = YourDataTable;
GridView1.DataBind();
スクリーンショット:

コード: サーバー側を使用
して、イベントで
Gridview 行をループしmyGridview_DataBound
、条件セルの値を確認して、それぞれの色を設定します。
protected void myGridview_DataBound(object sender, EventArgs e)
{
for (int i = 0; i <= myGridview.Rows.Count - 1; i++)
{
string myClassVal = myGridview.Rows[i].Cells[2].Text;
if (myClassVal == "Class A")
{
myGridview.Rows[i].Cells[2].BackColor = Color.Green;
}
else if (myClassVal == "Class B")
{
myGridview.Rows[i].Cells[2].BackColor = Color.Red;
}
else
{
myGridview.Rows[i].Cells[2].BackColor = Color.Orange;
}
}
}
HTML :
<asp:GridView ID="myGridview" runat="server" ondatabound="myGridview_DataBound">
</asp:GridView>
コードビハインド:
myGridview.DataSource = YourDataTable;
myGridview.DataBind();
スクリーンショット:
