我正在嘗試根據其中一個單元格中的值更改 gridview 行的顏色。然而,它只是部分作業。這是代碼:
protected void attn_list_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.Cells[4].Text == "P") //change the colour of rows
{
e.Row.BackColor = Color.FromName("#CCDDCC");
}
else if (e.Row.Cells[4].Text == "L")
{
e.Row.BackColor = Color.FromName("#C5DAFC");
}
else if (e.Row.Cells[4].Text == "E")
{
e.Row.BackColor = Color.FromName("#FFCC66");
}
else if (e.Row.Cells[4].Text == "U")
{
e.Row.BackColor = Color.FromName("FFCECE");
}
else if (e.Row.Cells[4].Text == "N")
{
e.Row.BackColor = Color.FromName("EDC9FF");
}
if (e.Row.Cells[5].Text == "Yes")
{
e.Row.Cells[5].ForeColor = Color.FromKnownColor(KnownColor.Red); //if EL, set colour of font as red
}
}
結果:

我試圖把在測驗條件System.Diagnostic.Debug.Writeline("A")為else if (e.Row.Cells[4].Text=="N")陳述句,原來它印有“A”,這意味著它實際上是滿足的條件。只是不知道為什么顏色不會改變......
提前致謝
uj5u.com熱心網友回復:
好吧,代碼越多,我們瀏覽的次數就越多!
因此,將上面轉換為:
if (e.Row.RowType == DataControlRowType.DataRow)
{
string sColor = "";
switch(e.Row.Cells[4].Text)
{
case "P": sColor = "#CCDDCC"; break;
case "L": sColor = "#C5DAFC"; break;
case "E": sColor = "#FFCC66"; break;
case "U": sColor = "FFCC66"; break;
case "N": sColor = "EDC9FF"; break;
}
if (sColor != "")
e.Row.BackColor = Color.FromName(sColor);
if (e.Row.Cells[5].Text == "Yes")
{
e.Row.Cells[5].ForeColor = Color.FromKnownColor(KnownColor.Red); //if EL, set colour of font as red
}
}
嗯,看起來您確實缺少某些顏色的“#”。
另外,請注意我們如何檢查資料系結是否實際上正在處理資料行,標題和其他型別的“行”被扔到該例程中,因此我們也應該(需要)檢查行型別。
但是,到目前為止,似乎缺少“#”。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/327184.html
