更改 GridView 单元格中文本的颜色而不更改边框颜色

Fre*_*red 5 css c# asp.net gridview

我在 gridview 中显示数据并希望有条件地更改单元格中文本的颜色。

所以在RowDataBound网格上

if (e.Row.RowType == DataControlRowType.DataRow)
{
     if (((SurveyListHeader)(e.Row.DataItem)).PositionalConfidence != "G1" && ((SurveyListHeader)(e.Row.DataItem)).PositionalConfidence != "G3")
     {
          e.Row.Cells[3].ForeColor = System.Drawing.Color.Red;
        //e.Row.Cells[3].BorderColor = System.Drawing.Color.Black;
     }

     if (((SurveyListHeader)(e.Row.DataItem)).PositionalConfidence != "G2" && ((SurveyListHeader)(e.Row.DataItem)).PositionalConfidence != "G3")
     {
          e.Row.Cells[4].ForeColor = System.Drawing.Color.Red;
        //e.Row.Cells[4].BorderColor = System.Drawing.Color.Black;
     }
}
Run Code Online (Sandbox Code Playgroud)

然而,这也会导致边框颜色发生变化。

在此处输入图片说明

我曾尝试将边框颜色改回黑色,但这不起作用。
我尝试向单元格的 CSSStyleCollection 添加样式项,但仍然没有任何乐趣。

我已经看到其他人遇到了这个问题,但没有任何答案适合我。有什么建议?

Bli*_*ers 1

对于任何其他偶然发现这一点的人,您可以通过更改前色然后将所有边框更改回黑色来使其工作 - 可能并不理想,但更改所有单独的标签将是一场噩梦。下面的代码(请注意,您必须更改每个单元格而不仅仅是行边框),其中 grdSearchResults 是您的网格视图:

 protected void grdSearchResults_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {    
                if (e.Row.Cells[1].Text == "Closed")
                {
                    e.Row.ForeColor = System.Drawing.Color.LightGray;

                    for (int i = 0; i < grdSearchResults.Columns.Count; i++)
                    {
                        e.Row.Cells[i].BorderColor = System.Drawing.Color.Black;
                    }                 
                }    
            }
        }
Run Code Online (Sandbox Code Playgroud)